Documentation ¶
Overview ¶
Package ccv3 represents a Cloud Controller V3 client.
These sets of packages are still under development/pre-pre-pre...alpha. Use at your own risk! Functionality and design may change without warning.
It is currently designed to support Cloud Controller API 3.0.0. However, it may include features and endpoints of later API versions.
For more information on the Cloud Controller API see https://apidocs.cloudfoundry.org/
Method Naming Conventions ¶
The client takes a '<Action Name><Top Level Endpoint><Return Value>' approach to method names. If the <Top Level Endpoint> and <Return Value> are similar, they do not need to be repeated. If a GUID is required for the <Top Level Endpoint>, the pluralization is removed from said endpoint in the method name.
Additionally, if the endpoint is an "action" endpoint, do not include the word "Action" in the method name.
For Example:
Method Name: GetApplication Endpoint: /v3/applications/:guid Action Name: Get Top Level Endpoint: applications Return Value: Application Method Name: GetServiceInstances Endpoint: /v3/service_instances Action Name: Get Top Level Endpoint: service_instances Return Value: []ServiceInstance Method Name: GetSpaceServiceInstances Endpoint: /v3/spaces/:guid/service_instances Action Name: Get Top Level Endpoint: spaces Return Value: []ServiceInstance Method Name: CreateApplicationTask Endpoint: /v3/apps/:application_guid/task Action Name: Post Top Level Endpoint: apps Return Value: Task
Use the following table to determine which HTTP Command equates to which Action Name:
HTTP Command -> Action Name POST -> Create OR Update* GET -> Get PUT -> Update DELETE -> Delete PATCH -> Update
* - In some cases POSTs are updating resources, in these cases the method should be called Update, not Create.
Method Locations ¶
Methods exist in the same file as their return type, regardless of which endpoint they use.
Error Handling ¶
All error handling that requires parsing the error_code/code returned back from the Cloud Controller should be placed in the errorWrapper. Everything else can be handled in the individual operations. All parsed cloud controller errors should exist in errors.go, all generic HTTP errors should exist in the cloudcontroller's errors.go. Errors related to the individual operation should exist at the top of that operation's file.
Index ¶
- func FormatQueryParameters(queries []Query) url.Values
- type APILink
- type APILinks
- type Application
- type Build
- type Buildpack
- type Client
- func (client *Client) CancelDeployment(deploymentGUID string) (Warnings, error)
- func (client *Client) CreateApplication(app Application) (Application, Warnings, error)
- func (client *Client) CreateApplicationDeployment(appGUID string, dropletGUID string) (string, Warnings, error)
- func (client *Client) CreateApplicationProcessScale(appGUID string, process Process) (Process, Warnings, error)
- func (client *Client) CreateApplicationTask(appGUID string, task Task) (Task, Warnings, error)
- func (client *Client) CreateBuild(build Build) (Build, Warnings, error)
- func (client *Client) CreateBuildpack(bp Buildpack) (Buildpack, Warnings, error)
- func (client *Client) CreateIsolationSegment(isolationSegment IsolationSegment) (IsolationSegment, Warnings, error)
- func (client *Client) CreatePackage(pkg Package) (Package, Warnings, error)
- func (client *Client) DeleteApplication(appGUID string) (JobURL, Warnings, error)
- func (client *Client) DeleteApplicationProcessInstance(appGUID string, processType string, instanceIndex int) (Warnings, error)
- func (client Client) DeleteBuildpack(buildpackGUID string) (JobURL, Warnings, error)
- func (client *Client) DeleteIsolationSegment(guid string) (Warnings, error)
- func (client *Client) DeleteIsolationSegmentOrganization(isolationSegmentGUID string, orgGUID string) (Warnings, error)
- func (client *Client) DeleteServiceInstanceRelationshipsSharedSpace(serviceInstanceGUID string, spaceGUID string) (Warnings, error)
- func (client *Client) EntitleIsolationSegmentToOrganizations(isolationSegmentGUID string, organizationGUIDs []string) (RelationshipList, Warnings, error)
- func (client *Client) GetApplicationDropletCurrent(appGUID string) (Droplet, Warnings, error)
- func (client *Client) GetApplicationEnvironment(appGUID string) (Environment, Warnings, error)
- func (client *Client) GetApplicationManifest(appGUID string) ([]byte, Warnings, error)
- func (client *Client) GetApplicationProcessByType(appGUID string, processType string) (Process, Warnings, error)
- func (client *Client) GetApplicationProcesses(appGUID string) ([]Process, Warnings, error)
- func (client *Client) GetApplicationTasks(appGUID string, query ...Query) ([]Task, Warnings, error)
- func (client *Client) GetApplications(query ...Query) ([]Application, Warnings, error)
- func (client *Client) GetBuild(guid string) (Build, Warnings, error)
- func (client *Client) GetBuildpacks(query ...Query) ([]Buildpack, Warnings, error)
- func (client *Client) GetDeployment(deploymentGUID string) (Deployment, Warnings, error)
- func (client *Client) GetDeployments(query ...Query) ([]Deployment, Warnings, error)
- func (client *Client) GetDroplet(dropletGUID string) (Droplet, Warnings, error)
- func (client *Client) GetDroplets(query ...Query) ([]Droplet, Warnings, error)
- func (client *Client) GetFeatureFlag(flagName string) (FeatureFlag, Warnings, error)
- func (client *Client) GetFeatureFlags() ([]FeatureFlag, Warnings, error)
- func (client *Client) GetInfo() (Info, ResourceLinks, Warnings, error)
- func (client *Client) GetIsolationSegment(guid string) (IsolationSegment, Warnings, error)
- func (client *Client) GetIsolationSegmentOrganizations(isolationSegmentGUID string) ([]Organization, Warnings, error)
- func (client *Client) GetIsolationSegments(query ...Query) ([]IsolationSegment, Warnings, error)
- func (client *Client) GetJob(jobURL JobURL) (Job, Warnings, error)
- func (client *Client) GetOrganizationDefaultIsolationSegment(orgGUID string) (Relationship, Warnings, error)
- func (client *Client) GetOrganizations(query ...Query) ([]Organization, Warnings, error)
- func (client *Client) GetPackage(packageGUID string) (Package, Warnings, error)
- func (client *Client) GetPackages(query ...Query) ([]Package, Warnings, error)
- func (client *Client) GetProcessInstances(processGUID string) ([]ProcessInstance, Warnings, error)
- func (client *Client) GetServiceInstances(query ...Query) ([]ServiceInstance, Warnings, error)
- func (client *Client) GetSpaceIsolationSegment(spaceGUID string) (Relationship, Warnings, error)
- func (client *Client) GetSpaces(query ...Query) ([]Space, Warnings, error)
- func (client *Client) GetStacks(query ...Query) ([]Stack, Warnings, error)
- func (client *Client) PollJob(jobURL JobURL) (Warnings, error)
- func (client *Client) SetApplicationDroplet(appGUID string, dropletGUID string) (Relationship, Warnings, error)
- func (client *Client) ShareServiceInstanceToSpaces(serviceInstanceGUID string, spaceGUIDs []string) (RelationshipList, Warnings, error)
- func (client *Client) TargetCF(settings TargetSettings) (Warnings, error)
- func (client *Client) UpdateApplication(app Application) (Application, Warnings, error)
- func (client *Client) UpdateApplicationApplyManifest(appGUID string, rawManifest []byte) (JobURL, Warnings, error)
- func (client *Client) UpdateApplicationEnvironmentVariables(appGUID string, envVars EnvironmentVariables) (EnvironmentVariables, Warnings, error)
- func (client *Client) UpdateApplicationRestart(appGUID string) (Application, Warnings, error)
- func (client *Client) UpdateApplicationStart(appGUID string) (Application, Warnings, error)
- func (client *Client) UpdateApplicationStop(appGUID string) (Application, Warnings, error)
- func (client Client) UpdateBuildpack(buildpack Buildpack) (Buildpack, Warnings, error)
- func (client *Client) UpdateFeatureFlag(flag FeatureFlag) (FeatureFlag, Warnings, error)
- func (client *Client) UpdateOrganizationDefaultIsolationSegmentRelationship(orgGUID string, isoSegGUID string) (Relationship, Warnings, error)
- func (client *Client) UpdateProcess(process Process) (Process, Warnings, error)
- func (client *Client) UpdateSpaceApplyManifest(spaceGUID string, rawManifest []byte) (JobURL, Warnings, error)
- func (client *Client) UpdateSpaceIsolationSegmentRelationship(spaceGUID string, isolationSegmentGUID string) (Relationship, Warnings, error)
- func (client *Client) UpdateTaskCancel(taskGUID string) (Task, Warnings, error)
- func (client *Client) UploadBitsPackage(pkg Package, existingResources []V2FormattedResource, newResources io.Reader, ...) (Package, Warnings, error)
- func (client *Client) UploadBuildpack(buildpackGUID string, buildpackPath string, buildpack io.Reader, ...) (JobURL, Warnings, error)
- func (client *Client) UploadPackage(pkg Package, fileToUpload string) (Package, Warnings, error)
- func (client *Client) WrapConnection(wrapper ConnectionWrapper)
- type Clock
- type Config
- type ConnectionWrapper
- type Deployment
- type Droplet
- type DropletBuildpack
- type Environment
- type EnvironmentVariables
- type ErrorDetails
- type FeatureFlag
- type Info
- func (info Info) AppSSHEndpoint() string
- func (info Info) AppSSHHostKeyFingerprint() string
- func (info Info) CloudControllerAPIVersion() string
- func (info Info) Logging() string
- func (info Info) NetworkPolicyV1() string
- func (info Info) OAuthClient() string
- func (info Info) Routing() string
- func (info Info) UAA() string
- type InfoLinks
- type IsolationSegment
- type Job
- type JobURL
- type Organization
- type Package
- type PaginatedResources
- type Process
- type ProcessInstance
- type Query
- type QueryKey
- type Relationship
- type RelationshipList
- type Relationships
- type ResourceLinks
- type ServiceInstance
- type Space
- type Stack
- type TargetSettings
- type Task
- type V2FormattedResourcedeprecated
- type Warnings
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatQueryParameters ¶
FormatQueryParameters converts a Query object into a collection that cloudcontroller.Request can accept.
Types ¶
type APILink ¶
type APILink struct { // HREF is the fully qualified URL for the link. HREF string `json:"href"` // Method indicate the desired action to be performed on the identified // resource. Method string `json:"method"` // Meta contains additional metadata about the API. Meta struct { // Version of the API Version string `json:"version"` // Fingerprint to authenticate api with HostKeyFingerprint string `json:"host_key_fingerprint"` // Identifier for UAA queries OAuthClient string `json:"oath_client"` } `json:"meta"` }
APILink represents a generic link from a response object.
type Application ¶
type Application struct { // GUID is the unique application identifier. GUID string // StackName is the name of the stack on which the application runs. StackName string // LifecycleBuildpacks is a list of the names of buildpacks. LifecycleBuildpacks []string // LifecycleType is the type of the lifecycle. LifecycleType constant.AppLifecycleType // Name is the name given to the application. Name string // Relationships list the relationships to the application. Relationships Relationships // State is the desired state of the application. State constant.ApplicationState }
Application represents a Cloud Controller V3 Application.
func (Application) MarshalJSON ¶
func (a Application) MarshalJSON() ([]byte, error)
MarshalJSON converts an Application into a Cloud Controller Application.
func (*Application) UnmarshalJSON ¶
func (a *Application) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Application response.
type Build ¶
type Build struct { // CreatedAt is the time with zone when the build was created. CreatedAt string // DropletGUID is the unique identifier for the resulting droplet from the // staging process. DropletGUID string // Error describes errors during the build process. Error string // GUID is the unique build identifier. GUID string // PackageGUID is the unique identifier for package that is the input to the // staging process. PackageGUID string // State is the state of the build. State constant.BuildState }
Build represent the process of staging an application package.
func (Build) MarshalJSON ¶
MarshalJSON converts a Build into a Cloud Controller Application.
func (*Build) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller Build response.
type Buildpack ¶
type Buildpack struct { // Enabled is true when the buildpack can be used for staging. Enabled types.NullBool // Filename is the uploaded filename of the buildpack. Filename string // GUID is the unique identifier for the buildpack. GUID string // Locked is true when the buildpack cannot be updated. Locked types.NullBool // Name is the name of the buildpack. To be used by app buildpack field. // (only alphanumeric characters) Name string // Position is the order in which the buildpacks are checked during buildpack // auto-detection. Position types.NullInt // Stack is the name of the stack that the buildpack will use. Stack string // State is the current state of the buildpack. State string // Links are links to related resources. Links APILinks }
Buildpack represents a Cloud Controller V3 buildpack.
func (Buildpack) MarshalJSON ¶
MarshalJSON converts a Package into a Cloud Controller Package.
func (*Buildpack) UnmarshalJSON ¶
type Client ¶
type Client struct { Info // contains filtered or unexported fields }
Client can be used to talk to a Cloud Controller's V3 Endpoints.
func TestClient ¶
TestClient returns a new client explicitly meant for internal testing. This should not be used for production code.
func (*Client) CancelDeployment ¶
func (*Client) CreateApplication ¶
func (client *Client) CreateApplication(app Application) (Application, Warnings, error)
CreateApplication creates an application with the given settings.
func (*Client) CreateApplicationDeployment ¶
func (*Client) CreateApplicationProcessScale ¶
func (client *Client) CreateApplicationProcessScale(appGUID string, process Process) (Process, Warnings, error)
CreateApplicationProcessScale updates process instances count, memory or disk
func (*Client) CreateApplicationTask ¶
CreateApplicationTask runs a command in the Application environment associated with the provided Application GUID.
func (*Client) CreateBuild ¶
CreateBuild creates the given build, requires Package GUID to be set on the build.
func (*Client) CreateBuildpack ¶
CreateBuildpack creates a buildpack with the given settings, Type and the ApplicationRelationship must be set.
func (*Client) CreateIsolationSegment ¶
func (client *Client) CreateIsolationSegment(isolationSegment IsolationSegment) (IsolationSegment, Warnings, error)
CreateIsolationSegment will create an Isolation Segment on the Cloud Controller. Note: This will not validate that the placement tag exists in the diego cluster.
func (*Client) CreatePackage ¶
CreatePackage creates a package with the given settings, Type and the ApplicationRelationship must be set.
func (*Client) DeleteApplication ¶
DeleteApplication deletes the app with the given app GUID. Returns back a resulting job URL to poll.
func (*Client) DeleteApplicationProcessInstance ¶
func (client *Client) DeleteApplicationProcessInstance(appGUID string, processType string, instanceIndex int) (Warnings, error)
DeleteApplicationProcessInstance deletes/stops a particular application's process instance.
func (Client) DeleteBuildpack ¶
Delete a buildpack by guid
func (*Client) DeleteIsolationSegment ¶
DeleteIsolationSegment removes an isolation segment from the cloud controller. Note: This will only remove it from the cloud controller database. It will not remove it from diego.
func (*Client) DeleteIsolationSegmentOrganization ¶
func (client *Client) DeleteIsolationSegmentOrganization(isolationSegmentGUID string, orgGUID string) (Warnings, error)
DeleteIsolationSegmentOrganization will delete the relationship between the isolation segment and the organization provided.
func (*Client) DeleteServiceInstanceRelationshipsSharedSpace ¶
func (client *Client) DeleteServiceInstanceRelationshipsSharedSpace(serviceInstanceGUID string, spaceGUID string) (Warnings, error)
DeleteServiceInstanceRelationshipsSharedSpace will delete the sharing relationship between the service instance and the shared-to space provided.
func (*Client) EntitleIsolationSegmentToOrganizations ¶
func (client *Client) EntitleIsolationSegmentToOrganizations(isolationSegmentGUID string, organizationGUIDs []string) (RelationshipList, Warnings, error)
EntitleIsolationSegmentToOrganizations will create a link between the isolation segment and the list of organizations provided.
func (*Client) GetApplicationDropletCurrent ¶
GetApplicationDropletCurrent returns the current droplet for a given application.
func (*Client) GetApplicationEnvironment ¶
func (client *Client) GetApplicationEnvironment(appGUID string) (Environment, Warnings, error)
GetApplicationEnvironment fetches all the environment variables on an application by groups.
func (*Client) GetApplicationManifest ¶
GetApplicationManifest returns a (YAML) manifest for an application and its underlying processes.
func (*Client) GetApplicationProcessByType ¶
func (client *Client) GetApplicationProcessByType(appGUID string, processType string) (Process, Warnings, error)
GetApplicationProcessByType returns application process of specified type
func (*Client) GetApplicationProcesses ¶
GetApplicationProcesses lists processes for a given application. **Note**: Due to security, the API obfuscates certain values such as `command`.
func (*Client) GetApplicationTasks ¶
GetApplicationTasks returns a list of tasks associated with the provided application GUID. Results can be filtered by providing URL queries.
func (*Client) GetApplications ¶
func (client *Client) GetApplications(query ...Query) ([]Application, Warnings, error)
GetApplications lists applications with optional queries.
func (*Client) GetBuildpacks ¶
GetBuildpacks lists buildpacks with optional filters.
func (*Client) GetDeployment ¶
func (client *Client) GetDeployment(deploymentGUID string) (Deployment, Warnings, error)
func (*Client) GetDeployments ¶
func (client *Client) GetDeployments(query ...Query) ([]Deployment, Warnings, error)
func (*Client) GetDroplet ¶
GetDroplet returns a droplet with the given GUID.
func (*Client) GetDroplets ¶
GetDroplets lists droplets with optional filters.
func (*Client) GetFeatureFlag ¶
func (client *Client) GetFeatureFlag(flagName string) (FeatureFlag, Warnings, error)
func (*Client) GetFeatureFlags ¶
func (client *Client) GetFeatureFlags() ([]FeatureFlag, Warnings, error)
Lists feature flags.
func (*Client) GetInfo ¶
func (client *Client) GetInfo() (Info, ResourceLinks, Warnings, error)
GetInfo returns endpoint and API information from /v3.
func (*Client) GetIsolationSegment ¶
func (client *Client) GetIsolationSegment(guid string) (IsolationSegment, Warnings, error)
GetIsolationSegment returns back the requested isolation segment that matches the GUID.
func (*Client) GetIsolationSegmentOrganizations ¶
func (client *Client) GetIsolationSegmentOrganizations(isolationSegmentGUID string) ([]Organization, Warnings, error)
GetIsolationSegmentOrganizations lists organizations entitled to an isolation segment.
func (*Client) GetIsolationSegments ¶
func (client *Client) GetIsolationSegments(query ...Query) ([]IsolationSegment, Warnings, error)
GetIsolationSegments lists isolation segments with optional filters.
func (*Client) GetOrganizationDefaultIsolationSegment ¶
func (client *Client) GetOrganizationDefaultIsolationSegment(orgGUID string) (Relationship, Warnings, error)
GetOrganizationDefaultIsolationSegment returns the relationship between an organization and it's default isolation segment.
func (*Client) GetOrganizations ¶
func (client *Client) GetOrganizations(query ...Query) ([]Organization, Warnings, error)
GetOrganizations lists organizations with optional filters.
func (*Client) GetPackage ¶
GetPackage returns the package with the given GUID.
func (*Client) GetPackages ¶
GetPackages returns the list of packages.
func (*Client) GetProcessInstances ¶
func (client *Client) GetProcessInstances(processGUID string) ([]ProcessInstance, Warnings, error)
GetProcessInstances lists instance stats for a given process.
func (*Client) GetServiceInstances ¶
func (client *Client) GetServiceInstances(query ...Query) ([]ServiceInstance, Warnings, error)
GetServiceInstances lists service instances with optional filters.
func (*Client) GetSpaceIsolationSegment ¶
func (client *Client) GetSpaceIsolationSegment(spaceGUID string) (Relationship, Warnings, error)
GetSpaceIsolationSegment returns the relationship between a space and it's isolation segment.
func (*Client) PollJob ¶
PollJob will keep polling the given job until the job has terminated, an error is encountered, or config.OverallPollingTimeout is reached. In the last case, a JobTimeoutError is returned.
func (*Client) SetApplicationDroplet ¶
func (client *Client) SetApplicationDroplet(appGUID string, dropletGUID string) (Relationship, Warnings, error)
SetApplicationDroplet sets the specified droplet on the given application.
func (*Client) ShareServiceInstanceToSpaces ¶
func (client *Client) ShareServiceInstanceToSpaces(serviceInstanceGUID string, spaceGUIDs []string) (RelationshipList, Warnings, error)
ShareServiceInstanceToSpaces will create a sharing relationship between the service instance and the shared-to space for each space provided.
func (*Client) TargetCF ¶
func (client *Client) TargetCF(settings TargetSettings) (Warnings, error)
TargetCF sets the client to use the Cloud Controller specified in the configuration. Any other configuration is also applied to the client.
func (*Client) UpdateApplication ¶
func (client *Client) UpdateApplication(app Application) (Application, Warnings, error)
UpdateApplication updates an application with the given settings.
func (*Client) UpdateApplicationApplyManifest ¶
func (client *Client) UpdateApplicationApplyManifest(appGUID string, rawManifest []byte) (JobURL, Warnings, error)
UpdateApplicationApplyManifest applies the manifest to the given application. Returns back a resulting job URL to poll.
func (*Client) UpdateApplicationEnvironmentVariables ¶
func (client *Client) UpdateApplicationEnvironmentVariables(appGUID string, envVars EnvironmentVariables) (EnvironmentVariables, Warnings, error)
UpdateApplicationEnvironmentVariables adds/updates the user provided environment variables on an applicaiton. A restart is required for changes to take effect.
func (*Client) UpdateApplicationRestart ¶
func (client *Client) UpdateApplicationRestart(appGUID string) (Application, Warnings, error)
UpdateApplicationRestart restarts the given application.
func (*Client) UpdateApplicationStart ¶
func (client *Client) UpdateApplicationStart(appGUID string) (Application, Warnings, error)
UpdateApplicationStart starts the given application.
func (*Client) UpdateApplicationStop ¶
func (client *Client) UpdateApplicationStop(appGUID string) (Application, Warnings, error)
UpdateApplicationStop stops the given application.
func (Client) UpdateBuildpack ¶
func (*Client) UpdateFeatureFlag ¶
func (client *Client) UpdateFeatureFlag(flag FeatureFlag) (FeatureFlag, Warnings, error)
func (*Client) UpdateOrganizationDefaultIsolationSegmentRelationship ¶
func (client *Client) UpdateOrganizationDefaultIsolationSegmentRelationship(orgGUID string, isoSegGUID string) (Relationship, Warnings, error)
UpdateOrganizationDefaultIsolationSegmentRelationship sets the default isolation segment for an organization on the controller. If isoSegGuid is empty it will reset the default isolation segment.
func (*Client) UpdateProcess ¶
UpdateProcess updates the process's command or health check settings. GUID is always required; HealthCheckType is only required when updating health check settings.
func (*Client) UpdateSpaceApplyManifest ¶
func (*Client) UpdateSpaceIsolationSegmentRelationship ¶
func (client *Client) UpdateSpaceIsolationSegmentRelationship(spaceGUID string, isolationSegmentGUID string) (Relationship, Warnings, error)
UpdateSpaceIsolationSegmentRelationship assigns an isolation segment to a space and returns the relationship.
func (*Client) UpdateTaskCancel ¶
UpdateTaskCancel cancels a task.
func (*Client) UploadBitsPackage ¶
func (client *Client) UploadBitsPackage(pkg Package, existingResources []V2FormattedResource, newResources io.Reader, newResourcesLength int64) (Package, Warnings, error)
UploadApplicationPackage uploads the newResources and a list of existing resources to the cloud controller. An updated package is returned. The function will act differently given the following Readers:
- io.ReadSeeker: Will function properly on retry.
- io.Reader: Will return a ccerror.PipeSeekError on retry.
- nil: Will not add the "application" section to the request. The newResourcesLength is ignored in this case.
Note: In order to determine if package creation is successful, poll the Package's state field for more information.
func (*Client) UploadBuildpack ¶
func (client *Client) UploadBuildpack(buildpackGUID string, buildpackPath string, buildpack io.Reader, buildpackLength int64) (JobURL, Warnings, error)
UploadBuildpack uploads the contents of a buildpack zip to the server.
func (*Client) UploadPackage ¶
UploadPackage uploads a file to a given package's Upload resource. Note: fileToUpload is read entirely into memory prior to sending data to CC.
func (*Client) WrapConnection ¶
func (client *Client) WrapConnection(wrapper ConnectionWrapper)
WrapConnection wraps the current Client connection in the wrapper.
type Config ¶
type Config struct { // AppName is the name of the application/process using the client. AppName string // AppVersion is the version of the application/process using the client. AppVersion string // JobPollingTimeout is the maximum amount of time a job polls for. JobPollingTimeout time.Duration // JobPollingInterval is the wait time between job polls. JobPollingInterval time.Duration // Wrappers that apply to the client connection. Wrappers []ConnectionWrapper }
Config allows the Client to be configured
type ConnectionWrapper ¶
type ConnectionWrapper interface { cloudcontroller.Connection Wrap(innerconnection cloudcontroller.Connection) cloudcontroller.Connection }
ConnectionWrapper can wrap a given connection allowing the wrapper to modify all requests going in and out of the given connection.
type Deployment ¶
type Deployment struct { GUID string State constant.DeploymentState DropletGUID string CreatedAt string UpdatedAt string Relationships Relationships }
func (Deployment) MarshalJSON ¶
func (d Deployment) MarshalJSON() ([]byte, error)
MarshalJSON converts a Deployment into a Cloud Controller Deployment.
func (*Deployment) UnmarshalJSON ¶
func (d *Deployment) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Deployment response.
type Droplet ¶
type Droplet struct { //Buildpacks are the detected buildpacks from the staging process. Buildpacks []DropletBuildpack `json:"buildpacks,omitempty"` // CreatedAt is the timestamp that the Cloud Controller created the droplet. CreatedAt string `json:"created_at"` // GUID is the unique droplet identifier. GUID string `json:"guid"` // Image is the Docker image name. Image string `json:"image"` // Stack is the root filesystem to use with the buildpack. Stack string `json:"stack,omitempty"` // State is the current state of the droplet. State constant.DropletState `json:"state"` }
Droplet represents a Cloud Controller droplet's metadata. A droplet is a set of compiled bits for a given application.
type DropletBuildpack ¶
type DropletBuildpack struct { // Name is the buildpack name. Name string `json:"name"` //DetectOutput is the output during buildpack detect process. DetectOutput string `json:"detect_output"` }
DropletBuildpack is the name and output of a buildpack used to create a droplet.
type Environment ¶
type Environment struct { // Application contains basic application settings set by the user and CF // instance. Application map[string]interface{} `json:"application_env_json"` // EnvironmentVariables are user provided environment variables. EnvironmentVariables map[string]interface{} `json:"environment_variables"` //Running is the set of default environment variables available to running //apps. Running map[string]interface{} `json:"running_env_json"` //Staging is the set of default environment variables available during //staging. Staging map[string]interface{} `json:"staging_env_json"` // System contains information about bound services for the application. AKA // VCAP_SERVICES. System map[string]interface{} `json:"system_env_json"` }
Environment variables that will be provided to an app at runtime. It will include environment variables for Environment Variable Groups and Service Bindings.
type EnvironmentVariables ¶
type EnvironmentVariables map[string]types.FilteredString
EnvironmentVariables represents the environment variables that can be set on an application by the user.
func (EnvironmentVariables) MarshalJSON ¶
func (variables EnvironmentVariables) MarshalJSON() ([]byte, error)
func (*EnvironmentVariables) UnmarshalJSON ¶
func (variables *EnvironmentVariables) UnmarshalJSON(data []byte) error
type ErrorDetails ¶
type ErrorDetails struct { // Code is a numeric code for this error. Code int64 `json:"code"` // Detail is a verbose description of the error. Detail string `json:"detail"` // Title is a short description of the error. Title string `json:"title"` }
ErrorDetails provides information regarding a job's error.
type FeatureFlag ¶
Represents a Cloud Controller V3 Feature Flag.
func (FeatureFlag) MarshalJSON ¶
func (f FeatureFlag) MarshalJSON() ([]byte, error)
type Info ¶
type Info struct { // Links is a list of top level Cloud Controller APIs. Links InfoLinks `json:"links"` }
Info represents a GET response from the '/' endpoint of the cloud controller API.
func (Info) AppSSHEndpoint ¶
AppSSHEndpoint returns the HREF for SSHing into an app container.
func (Info) AppSSHHostKeyFingerprint ¶
AppSSHHostKeyFingerprint returns the SSH key fingerprint of the SSH proxy that brokers connections to application instances.
func (Info) CloudControllerAPIVersion ¶
CloudControllerAPIVersion returns the version of the CloudController.
func (Info) NetworkPolicyV1 ¶
NetworkPolicyV1 returns the HREF of the Container Networking v1 Policy API
func (Info) OAuthClient ¶
OAuthClient returns the oauth client ID of the SSH proxy that brokers connections to application instances.
type InfoLinks ¶
type InfoLinks struct { // AppSSH is the link for application ssh info. AppSSH APILink `json:"app_ssh"` // CCV3 is the link to the Cloud Controller V3 API. CCV3 APILink `json:"cloud_controller_v3"` // Logging is the link to the Logging API. Logging APILink `json:"logging"` // NetworkPolicyV1 is the link to the Container to Container Networking // API. NetworkPolicyV1 APILink `json:"network_policy_v1"` // Routing is the link to the routing API Routing APILink `json:"routing"` // UAA is the link to the UAA API. UAA APILink `json:"uaa"` }
type IsolationSegment ¶
type IsolationSegment struct { //GUID is the unique ID of the isolation segment. GUID string `json:"guid,omitempty"` //Name is the name of the isolation segment. Name string `json:"name"` }
IsolationSegment represents a Cloud Controller Isolation Segment.
type Job ¶
type Job struct { // Errors is a list of errors that occurred while processing the job. Errors []ErrorDetails `json:"errors"` // GUID is a unique identifier for the job. GUID string `json:"guid"` // State is the state of the job. State constant.JobState `json:"state"` }
Job represents a Cloud Controller Job.
func (Job) IsComplete ¶
IsComplete returns true when the job has completed successfully.
type Organization ¶
type Organization struct { // GUID is the unique organization identifier. GUID string `json:"guid"` // Name is the name of the organization. Name string `json:"name"` }
Organization represents a Cloud Controller V3 Organization.
type Package ¶
type Package struct { // CreatedAt is the time with zone when the object was created. CreatedAt string // DockerImage is the registry address of the docker image. DockerImage string // DockerPassword is the password for the docker image's registry. DockerPassword string // DockerUsername is the username for the docker image's registry. DockerUsername string // GUID is the unique identifier of the package. GUID string // Links are links to related resources. Links APILinks // Relationships are a list of relationships to other resources. Relationships Relationships // State is the state of the package. State constant.PackageState // Type is the package type. Type constant.PackageType }
Package represents a Cloud Controller V3 Package.
func (Package) MarshalJSON ¶
MarshalJSON converts a Package into a Cloud Controller Package.
func (*Package) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller Package response.
type PaginatedResources ¶
type PaginatedResources struct { // Pagination represents information about the paginated resource. Pagination struct { // Next represents a link to the next page. Next struct { // HREF is the HREF of the next page. HREF string `json:"href"` } `json:"next"` } `json:"pagination"` // ResourceBytes is the list of resources for the current page. ResourcesBytes json.RawMessage `json:"resources"` // contains filtered or unexported fields }
PaginatedResources represents a page of resources returned by the Cloud Controller.
func NewPaginatedResources ¶
func NewPaginatedResources(exampleResource interface{}) *PaginatedResources
NewPaginatedResources returns a new PaginatedResources struct with the given resource type.
func (PaginatedResources) NextPage ¶
func (pr PaginatedResources) NextPage() string
NextPage returns the HREF of the next page of results.
func (PaginatedResources) Resources ¶
func (pr PaginatedResources) Resources() ([]interface{}, error)
Resources unmarshals JSON representing a page of resources and returns a slice of the given resource type.
type Process ¶
type Process struct { GUID string Type string // Command is the process start command. Note: This value will be obfuscated when obtained from listing. Command types.FilteredString HealthCheckType constant.HealthCheckType HealthCheckEndpoint string HealthCheckInvocationTimeout int64 HealthCheckTimeout int64 Instances types.NullInt MemoryInMB types.NullUint64 DiskInMB types.NullUint64 }
func (Process) MarshalJSON ¶
func (*Process) UnmarshalJSON ¶
type ProcessInstance ¶
type ProcessInstance struct { // CPU is the current CPU usage of the instance. CPU float64 // Details is information about errors placing the instance. Details string // DiskQuota is the maximum disk the instance is allowed to use. DiskQuota uint64 // DiskUsage is the current disk usage of the instance. DiskUsage uint64 // Index is the index of the instance. Index int64 // Isolation segment is the current isolation segment that the instance is // running on. The value is empty when the instance is not placed on a // particular isolation segment. IsolationSegment string // MemoryQuota is the maximum memory the instance is allowed to use. MemoryQuota uint64 // DiskUsage is the current memory usage of the instance. MemoryUsage uint64 // State is the state of the instance. State constant.ProcessInstanceState // Type is the process type for the instance. Type string // Uptime is the duration that the instance has been running. Uptime time.Duration }
ProcessInstance represents a single process instance for a particular application.
func (*ProcessInstance) UnmarshalJSON ¶
func (instance *ProcessInstance) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a V3 Cloud Controller Instance response.
type Query ¶
Query is additional settings that can be passed to some requests that can filter, sort, etc. the results.
type QueryKey ¶
type QueryKey string
QueryKey is the type of query that is being selected on.
const ( // AppGUIDFilter is a query parameter for listing objects by app GUID. AppGUIDFilter QueryKey = "app_guids" // GUIDFilter is a query parameter for listing objects by GUID. GUIDFilter QueryKey = "guids" // NameFilter is a query parameter for listing objects by name. NameFilter QueryKey = "names" // OrganizationGUIDFilter is a query parameter for listing objects by Organization GUID. OrganizationGUIDFilter QueryKey = "organization_guids" // SequenceIDFilter is a query parameter for listing objects by sequence ID. SequenceIDFilter QueryKey = "sequence_ids" // SpaceGUIDFilter is a query parameter for listing objects by Space GUID. SpaceGUIDFilter QueryKey = "space_guids" // StackFilter is a query parameter for listing objects by stack name StackFilter QueryKey = "stacks" // OrderBy is a query parameter to specify how to order objects. OrderBy QueryKey = "order_by" // PerPage is a query parameter for specifying the number of results per page. PerPage QueryKey = "per_page" // NameOrder is a query value for ordering by name. This value is used in // conjunction with the OrderBy QueryKey. NameOrder = "name" // PositionOrder is a query value for ordering by posiiton. This value is // used in conjuction with the OrderBy QueryKey. PositionOrder = "position" )
type Relationship ¶
type Relationship struct {
GUID string
}
Relationship represents a one to one relationship. An empty GUID will be marshaled as `null`.
func (Relationship) MarshalJSON ¶
func (r Relationship) MarshalJSON() ([]byte, error)
func (*Relationship) UnmarshalJSON ¶
func (r *Relationship) UnmarshalJSON(data []byte) error
type RelationshipList ¶
type RelationshipList struct {
GUIDs []string
}
RelationshipList represents a one to many relationship.
func (RelationshipList) MarshalJSON ¶
func (r RelationshipList) MarshalJSON() ([]byte, error)
func (*RelationshipList) UnmarshalJSON ¶
func (r *RelationshipList) UnmarshalJSON(data []byte) error
type Relationships ¶
type Relationships map[constant.RelationshipType]Relationship
Relationships represent associations between resources. Relationships is a map of RelationshipTypes to Relationship.
type ResourceLinks ¶
ResourceLinks represents the information returned back from /v3.
func (ResourceLinks) UnmarshalJSON ¶
func (resources ResourceLinks) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller /v3 response.
type ServiceInstance ¶
type ServiceInstance struct { // GUID is a unique service instance identifier. GUID string `json:"guid"` // Name is the name of the service instance. Name string `json:"name"` }
ServiceInstance represents a Cloud Controller V3 Service Instance.
type Space ¶
type Space struct { // GUID is a unique space identifier. GUID string `json:"guid"` // Name is the name of the space. Name string `json:"name"` // Relationships list the relationships to the space. Relationships Relationships `json:"relationships"` }
Space represents a Cloud Controller V3 Space.
type TargetSettings ¶
type TargetSettings struct { // DialTimeout is the DNS timeout used to make all requests to the Cloud // Controller. DialTimeout time.Duration // SkipSSLValidation controls whether a client verifies the server's // certificate chain and host name. If SkipSSLValidation is true, TLS accepts // any certificate presented by the server and any host name in that // certificate for *all* client requests going forward. // // In this mode, TLS is susceptible to man-in-the-middle attacks. This should // be used only for testing. SkipSSLValidation bool // URL is a fully qualified URL to the Cloud Controller API. URL string }
TargetSettings represents configuration for establishing a connection to the Cloud Controller server.
type Task ¶
type Task struct { // Command represents the command that will be executed. May be excluded // based on the user's role. Command string `json:"command"` // CreatedAt represents the time with zone when the object was created. CreatedAt string `json:"created_at,omitempty"` // DiskInMB represents the disk in MB allocated for the task. DiskInMB uint64 `json:"disk_in_mb,omitempty"` // GUID represents the unique task identifier. GUID string `json:"guid,omitempty"` // MemoryInMB represents the memory in MB allocated for the task. MemoryInMB uint64 `json:"memory_in_mb,omitempty"` // Name represents the name of the task. Name string `json:"name,omitempty"` // SequenceID represents the user-facing id of the task. This number is // unique for every task associated with a given app. SequenceID int64 `json:"sequence_id,omitempty"` // State represents the task state. State constant.TaskState `json:"state,omitempty"` }
Task represents a Cloud Controller V3 Task.
type V2FormattedResource
deprecated
type V2FormattedResource struct { // Filename is the name of the resource. Filename string `json:"fn"` // Mode is the operating system file mode (aka file permissions) of the // resource. Mode os.FileMode `json:"mode"` // SHA1 represents the SHA-1 hash of the resource. SHA1 string `json:"sha1"` // Size represents the file size of the resource. Size int64 `json:"size"` }
V2FormattedResource represents a Cloud Controller Resource that still has the same shape as the V2 Resource. The v3 package upload endpoint understands both the V2 shape and the new V3 shape. The v3 resource matching endpoint only understands the new V3 shape.
Deprecated: Use Resource going forward. We anticipate that this struct will only be used by the v6 cli's v3-push command, which is experimental.
func (V2FormattedResource) MarshalJSON ¶
func (r V2FormattedResource) MarshalJSON() ([]byte, error)
MarshalJSON converts a resource into a Cloud Controller V2FormattedResource.
func (*V2FormattedResource) UnmarshalJSON ¶
func (r *V2FormattedResource) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller V2FormattedResource response.
Source Files ¶
- api_links.go
- application.go
- build.go
- buildpack.go
- client.go
- clock.go
- connection_wrapper.go
- deployment.go
- droplet.go
- environment.go
- environment_variables.go
- errors.go
- feature_flag.go
- info.go
- isolation_segment.go
- job.go
- job_url.go
- manifest.go
- organization.go
- package.go
- paginate.go
- paginated_resources.go
- process.go
- process_instance.go
- query.go
- relationship.go
- relationship_list.go
- relationships.go
- request.go
- resource.go
- service_instance.go
- space.go
- stack.go
- target.go
- task.go