Documentation ¶
Overview ¶
Package ccv2 represents a Cloud Controller V2 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 2.58.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><nth... 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.
For Example:
Method Name: GetApplication Endpoint: /v2/applications/:guid Action Name: GET Top Level Endpoint: applications Return Value: Application Method Name: GetServiceInstances Endpoint: /v2/service_instances Action Name: GET Top Level Endpoint: service_instances Return Value: []ServiceInstance Method Name: GetSpaceServiceInstances Endpoint: /v2/spaces/:guid/service_instances Action Name: GET Top Level Endpoint: spaces Return Value: []ServiceInstance Method Name: UpdateRouteApplication Endpoint: /v2/routes/:route_guid/apps/:app_guid Action Name: PUT Top Level Endpoint: routes Second Level Endpoint: Application Return Value: Route Method Name: DeleteSpaceJob Endpoint: /v2/spaces/:space_guid Action Name: DELETE Top Level Endpoint: spaces Return Value: Job
Use the following table to determine which HTTP Command equates to which Action Name:
HTTP Command -> Action Name POST -> Create GET -> Get PUT -> Update DELETE -> Delete PATCH -> Patch
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 errors structs should be placed in individual files in the ccerror package.
No inline-relations-depth And summary Endpoints ¶
This package will not ever use 'inline-relations-depth' or the '/summary' endpoints for any operations. These requests can be extremely taxing on the Cloud Controller and are avoided at all costs. Additionally, the objects returned back from these requests can become extremely inconsistent across versions and are problematic to deal with in general.
An additional problem that occurs with these endpoints is that lists of 51+ objects do not get returned by the CC. Example: Summary of Organizations includes a list of spaces. If there are 50 spaces, the endpoint returns these spaces under the 'spaces' field; if there are 51+, spaces, the 'spaces' field is missing from the CC return.
Index ¶
- func ConvertFilterParameters(filters []Filter) url.Values
- type APIInformation
- type Application
- type ApplicationInstance
- type ApplicationInstanceStatus
- type Buildpack
- type Client
- func (client *Client) API() string
- func (client *Client) APIVersion() string
- func (client *Client) AuthorizationEndpoint() string
- func (client *Client) CheckRoute(route Route) (bool, Warnings, error)
- func (client *Client) CreateApplication(app Application) (Application, Warnings, error)
- func (client *Client) CreateBuildpack(buildpack Buildpack) (Buildpack, Warnings, error)
- func (client *Client) CreateOrganization(orgName string) (Organization, Warnings, error)
- func (client *Client) CreateRoute(route Route, generatePort bool) (Route, Warnings, error)
- func (client *Client) CreateServiceBinding(appGUID string, serviceInstanceGUID string, bindingName string, ...) (ServiceBinding, Warnings, error)
- func (client *Client) CreateUser(uaaUserID string) (User, Warnings, error)
- func (client *Client) DeleteOrganization(guid string) (Job, Warnings, error)
- func (client *Client) DeleteOrganizationJob(guid string) (Job, Warnings, error)
- func (client *Client) DeleteRoute(routeGUID string) (Warnings, error)
- func (client *Client) DeleteRouteApplication(routeGUID string, appGUID string) (Warnings, error)
- func (client *Client) DeleteSecurityGroupSpace(securityGroupGUID string, spaceGUID string) (Warnings, error)
- func (client *Client) DeleteSecurityGroupStagingSpace(securityGroupGUID string, spaceGUID string) (Warnings, error)
- func (client *Client) DeleteServiceBinding(serviceBindingGUID string, acceptsIncomplete bool) (ServiceBinding, Warnings, error)
- func (client *Client) DeleteSpace(guid string) (Job, Warnings, error)
- func (client *Client) DeleteSpaceJob(guid string) (Job, Warnings, error)
- func (client *Client) DopplerEndpoint() string
- func (client *Client) GetApplication(guid string) (Application, Warnings, error)
- func (client *Client) GetApplicationApplicationInstanceStatuses(guid string) (map[int]ApplicationInstanceStatus, Warnings, error)
- func (client *Client) GetApplicationApplicationInstances(guid string) (map[int]ApplicationInstance, Warnings, error)
- func (client *Client) GetApplicationRoutes(appGUID string, filters ...Filter) ([]Route, Warnings, error)
- func (client *Client) GetApplications(filters ...Filter) ([]Application, Warnings, error)
- func (client *Client) GetBuildpacks(filters ...Filter) ([]Buildpack, Warnings, error)
- func (client Client) GetConfigFeatureFlags() ([]FeatureFlag, Warnings, error)
- func (client *Client) GetEvents(filters ...Filter) ([]Event, Warnings, error)
- func (client *Client) GetJob(jobGUID string) (Job, Warnings, error)
- func (client *Client) GetOrganization(guid string) (Organization, Warnings, error)
- func (client *Client) GetOrganizationPrivateDomains(orgGUID string, filters ...Filter) ([]Domain, Warnings, error)
- func (client *Client) GetOrganizationQuota(guid string) (OrganizationQuota, Warnings, error)
- func (client *Client) GetOrganizations(filters ...Filter) ([]Organization, Warnings, error)
- func (client *Client) GetPrivateDomain(domainGUID string) (Domain, Warnings, error)
- func (client *Client) GetPrivateDomains(filters ...Filter) ([]Domain, Warnings, error)
- func (client *Client) GetRoute(guid string) (Route, Warnings, error)
- func (client *Client) GetRouteApplications(routeGUID string, filters ...Filter) ([]Application, Warnings, error)
- func (client *Client) GetRouteMapping(guid string) (RouteMapping, Warnings, error)
- func (client *Client) GetRouteMappings(filters ...Filter) ([]RouteMapping, Warnings, error)
- func (client *Client) GetRoutes(filters ...Filter) ([]Route, Warnings, error)
- func (client *Client) GetSecurityGroupSpaces(securityGroupGUID string) ([]Space, Warnings, error)
- func (client *Client) GetSecurityGroupStagingSpaces(securityGroupGUID string) ([]Space, Warnings, error)
- func (client *Client) GetSecurityGroups(filters ...Filter) ([]SecurityGroup, Warnings, error)
- func (client *Client) GetService(serviceGUID string) (Service, Warnings, error)
- func (client *Client) GetServiceBinding(guid string) (ServiceBinding, Warnings, error)
- func (client *Client) GetServiceBindings(filters ...Filter) ([]ServiceBinding, Warnings, error)
- func (client *Client) GetServiceBrokers(filters ...Filter) ([]ServiceBroker, Warnings, error)
- func (client *Client) GetServiceInstance(serviceInstanceGUID string) (ServiceInstance, Warnings, error)
- func (client *Client) GetServiceInstanceServiceBindings(serviceInstanceGUID string) ([]ServiceBinding, Warnings, error)
- func (client *Client) GetServiceInstanceSharedFrom(serviceInstanceGUID string) (ServiceInstanceSharedFrom, Warnings, error)
- func (client *Client) GetServiceInstanceSharedTos(serviceInstanceGUID string) ([]ServiceInstanceSharedTo, Warnings, error)
- func (client *Client) GetServiceInstances(filters ...Filter) ([]ServiceInstance, Warnings, error)
- func (client *Client) GetServicePlan(servicePlanGUID string) (ServicePlan, Warnings, error)
- func (client *Client) GetServicePlanVisibilities(filters ...Filter) ([]ServicePlanVisibility, Warnings, error)
- func (client *Client) GetServicePlans(filters ...Filter) ([]ServicePlan, Warnings, error)
- func (client *Client) GetServices(filters ...Filter) ([]Service, Warnings, error)
- func (client *Client) GetSharedDomain(domainGUID string) (Domain, Warnings, error)
- func (client *Client) GetSharedDomains(filters ...Filter) ([]Domain, Warnings, error)
- func (client *Client) GetSpaceQuotaDefinition(guid string) (SpaceQuota, Warnings, error)
- func (client *Client) GetSpaceRoutes(spaceGUID string, filters ...Filter) ([]Route, Warnings, error)
- func (client *Client) GetSpaceSecurityGroups(spaceGUID string, filters ...Filter) ([]SecurityGroup, Warnings, error)
- func (client *Client) GetSpaceServiceInstances(spaceGUID string, includeUserProvidedServices bool, filters ...Filter) ([]ServiceInstance, Warnings, error)
- func (client *Client) GetSpaceStagingSecurityGroups(spaceGUID string, filters ...Filter) ([]SecurityGroup, Warnings, error)
- func (client *Client) GetSpaces(filters ...Filter) ([]Space, Warnings, error)
- func (client *Client) GetStack(guid string) (Stack, Warnings, error)
- func (client *Client) GetStacks(filters ...Filter) ([]Stack, Warnings, error)
- func (client *Client) GetUserProvidedServiceInstanceServiceBindings(userProvidedServiceInstanceGUID string) ([]ServiceBinding, Warnings, error)
- func (client *Client) GetUserProvidedServiceInstances(filters ...Filter) ([]ServiceInstance, Warnings, error)
- func (client *Client) Info() (APIInformation, Warnings, error)
- func (client *Client) MinCLIVersion() string
- func (client *Client) PollJob(job Job) (Warnings, error)
- func (client *Client) RestageApplication(app Application) (Application, Warnings, error)
- func (client *Client) RoutingEndpoint() string
- func (client *Client) TargetCF(settings TargetSettings) (Warnings, error)
- func (client *Client) TokenEndpoint() string
- func (client *Client) UpdateApplication(app Application) (Application, Warnings, error)
- func (client *Client) UpdateBuildpack(buildpack Buildpack) (Buildpack, Warnings, error)
- func (client *Client) UpdateResourceMatch(resourcesToMatch []Resource) ([]Resource, Warnings, error)
- func (client *Client) UpdateRouteApplication(routeGUID string, appGUID string) (Route, Warnings, error)
- func (client *Client) UpdateSecurityGroupSpace(securityGroupGUID string, spaceGUID string) (Warnings, error)
- func (client *Client) UpdateSecurityGroupStagingSpace(securityGroupGUID string, spaceGUID string) (Warnings, error)
- func (client *Client) UploadApplicationPackage(appGUID string, existingResources []Resource, newResources Reader, ...) (Job, Warnings, error)
- func (client *Client) UploadBuildpack(buildpackGUID string, buildpackPath string, buildpack io.Reader, ...) (Warnings, error)
- func (client *Client) UploadDroplet(appGUID string, droplet io.Reader, dropletLength int64) (Job, Warnings, error)
- func (client *Client) WrapConnection(wrapper ConnectionWrapper)
- type Config
- type ConnectionWrapper
- type DockerCredentials
- type Domain
- type Event
- type FeatureFlag
- type Filter
- type Job
- type LastOperation
- type Organization
- type OrganizationQuota
- type PaginatedResources
- type Params
- type Reader
- type Resource
- type Route
- type RouteMapping
- type SecurityGroup
- type SecurityGroupRule
- type Service
- type ServiceBinding
- type ServiceBroker
- type ServiceExtra
- type ServiceInstance
- type ServiceInstanceSharedFrom
- type ServiceInstanceSharedTo
- type ServicePlan
- type ServicePlanVisibility
- type Space
- type SpaceQuota
- type Stack
- type TargetSettings
- type User
- type Warnings
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertFilterParameters ¶
ConvertFilterParameters converts a Filter object into a collection that cloudcontroller.Request can accept.
Types ¶
type APIInformation ¶
type APIInformation struct { // APIVersion is the Cloud Controller API version number. APIVersion string `json:"api_version"` // AuthorizationEndpoint is the authorization endpoint for the targeted Cloud // Controller. AuthorizationEndpoint string `json:"authorization_endpoint"` // DopplerEndpoint is the Doppler endpoint for the targeted Cloud Controller. DopplerEndpoint string `json:"doppler_logging_endpoint"` // MinCLIVersion is the minimum CLI version number required for the targeted // Cloud Controller. MinCLIVersion string `json:"min_cli_version"` // MinimumRecommendedCLIVersion is the minimum CLI version number recommended // for the targeted Cloud Controller. MinimumRecommendedCLIVersion string `json:"min_recommended_cli_version"` // Name is the name given to the targeted Cloud Controller. Name string `json:"name"` // RoutingEndpoint is the Routing endpoint for the targeted Cloud Controller. RoutingEndpoint string `json:"routing_endpoint"` // TokenEndpoint is the endpoint to retrieve a refresh token for the targeted // Cloud Controller. TokenEndpoint string `json:"token_endpoint"` }
APIInformation represents the information returned back from /v2/info
type Application ¶
type Application struct { // Buildpack is the buildpack set by the user. Buildpack types.FilteredString // Command is the user specified start command. Command types.FilteredString // DetectedBuildpack is the buildpack automatically detected. DetectedBuildpack types.FilteredString // DetectedStartCommand is the command used to start the application. DetectedStartCommand types.FilteredString // DiskQuota is the disk given to each instance, in megabytes. DiskQuota types.NullByteSizeInMb // DockerCredentials is the authentication information for the provided // DockerImage. DockerCredentials DockerCredentials // DockerImage is the docker image location. DockerImage string // EnvironmentVariables are the environment variables passed to the app. EnvironmentVariables map[string]string // GUID is the unique application identifier. GUID string // HealthCheckTimeout is the number of seconds for health checking of an // staged app when starting up. HealthCheckTimeout int // HealthCheckType is the type of health check that will be done to the app. HealthCheckType constant.ApplicationHealthCheckType // HealthCheckHTTPEndpoint is the url of the http health check endpoint. HealthCheckHTTPEndpoint string // Instances is the total number of app instances. Instances types.NullInt // Memory is the memory given to each instance, in megabytes. Memory types.NullByteSizeInMb // Name is the name given to the application. Name string // PackageState represents the staging state of the application bits. PackageState constant.ApplicationPackageState // PackageUpdatedAt is the last time the app bits were updated. In RFC3339. PackageUpdatedAt time.Time // SpaceGUID is the GUID of the app's space. SpaceGUID string // StackGUID is the GUID for the Stack the application is running on. StackGUID string // StagingFailedDescription is the verbose description of why the package // failed to stage. StagingFailedDescription string // StagingFailedReason is the reason why the package failed to stage. StagingFailedReason string // State is the desired state of the application. State constant.ApplicationState }
Application represents a Cloud Controller Application.
func (Application) MarshalJSON ¶
func (application Application) MarshalJSON() ([]byte, error)
MarshalJSON converts an application into a Cloud Controller Application.
func (*Application) UnmarshalJSON ¶
func (application *Application) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Application response.
type ApplicationInstance ¶
type ApplicationInstance struct { // Details are arbitrary information about the instance. Details string // ID is the instance ID. ID int // Since is the Unix time stamp that represents the time the instance was // created. Since float64 // State is the instance's state. State constant.ApplicationInstanceState }
ApplicationInstance represents a Cloud Controller Application Instance.
func (*ApplicationInstance) UnmarshalJSON ¶
func (instance *ApplicationInstance) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller application instance response.
type ApplicationInstanceStatus ¶
type ApplicationInstanceStatus struct { // CPU is the instance's CPU utilization percentage. CPU float64 // Disk is the instance's disk usage in bytes. Disk int // DiskQuota is the instance's allowed disk usage in bytes. DiskQuota int // ID is the instance ID. ID int // IsolationSegment that the app is currently running on. IsolationSegment string // Memory is the instance's memory usage in bytes. Memory int // MemoryQuota is the instance's allowed memory usage in bytes. MemoryQuota int // State is the instance's state. State constant.ApplicationInstanceState // Uptime is the number of seconds the instance has been running. Uptime int }
ApplicationInstanceStatus represents a Cloud Controller Application Instance.
func (*ApplicationInstanceStatus) UnmarshalJSON ¶
func (instance *ApplicationInstanceStatus) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller application instance response.
type Buildpack ¶
type Buildpack struct { Enabled bool `json:"enabled"` GUID string `json:"guid,omitempty"` Name string `json:"name"` Position int `json:"position,omitempty"` }
Buildpack represents a Cloud Controller Buildpack.
func (*Buildpack) UnmarshalJSON ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a client that can be used to talk to a Cloud Controller's V2 Endpoints.
func (*Client) APIVersion ¶
APIVersion returns Cloud Controller API Version for the targeted Cloud Controller.
func (*Client) AuthorizationEndpoint ¶
AuthorizationEndpoint returns the authorization endpoint for the targeted Cloud Controller.
func (*Client) CheckRoute ¶
CheckRoute returns true if the route exists in the CF instance.
func (*Client) CreateApplication ¶
func (client *Client) CreateApplication(app Application) (Application, Warnings, error)
CreateApplication creates a cloud controller application in with the given settings. SpaceGUID and Name are the only required fields.
func (*Client) CreateBuildpack ¶
CreateBuildpack creates a new buildpack.
func (*Client) CreateOrganization ¶
func (client *Client) CreateOrganization(orgName string) (Organization, Warnings, error)
func (*Client) CreateRoute ¶
CreateRoute creates the route with the given properties; SpaceGUID and DomainGUID are required Route properties. Additional configuration rules: - generatePort = true to generate a random port on the cloud controller. - generatePort takes precedence over the provided port. Setting the port and generatePort only works with CC API 2.53.0 or higher and when TCP router groups are enabled.
func (*Client) CreateServiceBinding ¶
func (*Client) CreateUser ¶
CreateUser creates a new Cloud Controller User from the provided UAA user ID.
func (*Client) DeleteOrganization ¶
DeleteOrganization deletes the Organization associated with the provided GUID. It will return the Cloud Controller job that is assigned to the Organization deletion.
func (*Client) DeleteOrganizationJob ¶
DeleteOrganizationJob deletes the Organization associated with the provided GUID. It will return the Cloud Controller job that is assigned to the Organization deletion.
func (*Client) DeleteRoute ¶
DeleteRoute deletes the Route associated with the provided Route GUID.
func (*Client) DeleteRouteApplication ¶
DeleteRouteApplication removes the link between the route and application.
func (*Client) DeleteSecurityGroupSpace ¶
func (client *Client) DeleteSecurityGroupSpace(securityGroupGUID string, spaceGUID string) (Warnings, error)
DeleteSecurityGroupSpace disassociates a security group in the running phase for the lifecycle, specified by its GUID, from a space, which is also specified by its GUID.
func (*Client) DeleteSecurityGroupStagingSpace ¶
func (client *Client) DeleteSecurityGroupStagingSpace(securityGroupGUID string, spaceGUID string) (Warnings, error)
DeleteSecurityGroupStagingSpace disassociates a security group in the staging phase fo the lifecycle, specified by its GUID, from a space, which is also specified by its GUID.
func (*Client) DeleteServiceBinding ¶
func (client *Client) DeleteServiceBinding(serviceBindingGUID string, acceptsIncomplete bool) (ServiceBinding, Warnings, error)
DeleteServiceBinding deletes the specified Service Binding. An updated service binding is returned only if acceptsIncomplete is true.
func (*Client) DeleteSpace ¶
DeleteSpace deletes the Space associated with the provided GUID. It will return the Cloud Controller job that is assigned to the Space deletion.
func (*Client) DeleteSpaceJob ¶
DeleteSpaceJob deletes the Space associated with the provided GUID. It will return the Cloud Controller job that is assigned to the Space deletion.
func (*Client) DopplerEndpoint ¶
DopplerEndpoint returns the Doppler endpoint for the targetd Cloud Controller.
func (*Client) GetApplication ¶
func (client *Client) GetApplication(guid string) (Application, Warnings, error)
GetApplication returns back an Application.
func (*Client) GetApplicationApplicationInstanceStatuses ¶
func (client *Client) GetApplicationApplicationInstanceStatuses(guid string) (map[int]ApplicationInstanceStatus, Warnings, error)
GetApplicationApplicationInstanceStatuses returns a list of ApplicationInstanceStatus for a given application. Depending on the state of an application, it might skip some application instance statuses.
func (*Client) GetApplicationApplicationInstances ¶
func (client *Client) GetApplicationApplicationInstances(guid string) (map[int]ApplicationInstance, Warnings, error)
GetApplicationApplicationInstances returns a list of ApplicationInstance for a given application. Depending on the state of an application, it might skip some application instances.
func (*Client) GetApplicationRoutes ¶
func (client *Client) GetApplicationRoutes(appGUID string, filters ...Filter) ([]Route, Warnings, error)
GetApplicationRoutes returns a list of Routes associated with the provided Application GUID, and filtered by the provided filters.
func (*Client) GetApplications ¶
func (client *Client) GetApplications(filters ...Filter) ([]Application, Warnings, error)
GetApplications returns back a list of Applications based off of the provided filters.
func (*Client) GetBuildpacks ¶
GetBuildpacks searches for a buildpack with the given name and returns it if it exists.
func (Client) GetConfigFeatureFlags ¶
func (client Client) GetConfigFeatureFlags() ([]FeatureFlag, Warnings, error)
GetConfigFeatureFlags retrieves a list of FeatureFlag from the Cloud Controller.
func (*Client) GetEvents ¶
GetEvents returns back a list of Events based off of the provided queries.
func (*Client) GetOrganization ¶
func (client *Client) GetOrganization(guid string) (Organization, Warnings, error)
GetOrganization returns an Organization associated with the provided GUID.
func (*Client) GetOrganizationPrivateDomains ¶
func (client *Client) GetOrganizationPrivateDomains(orgGUID string, filters ...Filter) ([]Domain, Warnings, error)
GetOrganizationPrivateDomains returns the private domains associated with an organization.
func (*Client) GetOrganizationQuota ¶
func (client *Client) GetOrganizationQuota(guid string) (OrganizationQuota, Warnings, error)
GetOrganizationQuota returns an Organization Quota associated with the provided GUID.
func (*Client) GetOrganizations ¶
func (client *Client) GetOrganizations(filters ...Filter) ([]Organization, Warnings, error)
GetOrganizations returns back a list of Organizations based off of the provided filters.
func (*Client) GetPrivateDomain ¶
GetPrivateDomain returns the Private Domain associated with the provided Domain GUID.
func (*Client) GetPrivateDomains ¶
GetPrivateDomains returns the private domains this client has access to.
func (*Client) GetRouteApplications ¶
func (client *Client) GetRouteApplications(routeGUID string, filters ...Filter) ([]Application, Warnings, error)
GetRouteApplications returns a list of Applications based off a route GUID and the provided filters.
func (*Client) GetRouteMapping ¶
func (client *Client) GetRouteMapping(guid string) (RouteMapping, Warnings, error)
GetRouteMapping returns a route mapping with the provided guid.
func (*Client) GetRouteMappings ¶
func (client *Client) GetRouteMappings(filters ...Filter) ([]RouteMapping, Warnings, error)
GetRouteMappings returns a list of RouteMappings based off of the provided queries.
func (*Client) GetSecurityGroupSpaces ¶
GetSecurityGroupSpaces returns a list of Spaces based on the provided SecurityGroup GUID.
func (*Client) GetSecurityGroupStagingSpaces ¶
func (client *Client) GetSecurityGroupStagingSpaces(securityGroupGUID string) ([]Space, Warnings, error)
GetSecurityGroupStagingSpaces returns a list of Spaces based on the provided SecurityGroup GUID.
func (*Client) GetSecurityGroups ¶
func (client *Client) GetSecurityGroups(filters ...Filter) ([]SecurityGroup, Warnings, error)
GetSecurityGroups returns a list of Security Groups based off the provided filters.
func (*Client) GetService ¶
GetService returns the service with the given GUID.
func (*Client) GetServiceBinding ¶
func (client *Client) GetServiceBinding(guid string) (ServiceBinding, Warnings, error)
GetServiceBinding returns back a service binding with the provided GUID.
func (*Client) GetServiceBindings ¶
func (client *Client) GetServiceBindings(filters ...Filter) ([]ServiceBinding, Warnings, error)
GetServiceBindings returns back a list of Service Bindings based off of the provided filters.
func (*Client) GetServiceBrokers ¶
func (client *Client) GetServiceBrokers(filters ...Filter) ([]ServiceBroker, Warnings, error)
GetServiceBrokers returns back a list of Service Brokers given the provided filters.
func (*Client) GetServiceInstance ¶
func (client *Client) GetServiceInstance(serviceInstanceGUID string) (ServiceInstance, Warnings, error)
GetServiceInstance returns the service instance with the given GUID. This service can be either a managed or user provided.
func (*Client) GetServiceInstanceServiceBindings ¶
func (client *Client) GetServiceInstanceServiceBindings(serviceInstanceGUID string) ([]ServiceBinding, Warnings, error)
GetServiceInstanceServiceBindings returns back a list of Service Bindings for the provided service instance GUID.
func (*Client) GetServiceInstanceSharedFrom ¶
func (client *Client) GetServiceInstanceSharedFrom(serviceInstanceGUID string) (ServiceInstanceSharedFrom, Warnings, error)
GetServiceInstanceSharedFrom returns back a ServiceInstanceSharedFrom object.
func (*Client) GetServiceInstanceSharedTos ¶
func (client *Client) GetServiceInstanceSharedTos(serviceInstanceGUID string) ([]ServiceInstanceSharedTo, Warnings, error)
GetServiceInstanceSharedTos returns a list of ServiceInstanceSharedTo objects.
func (*Client) GetServiceInstances ¶
func (client *Client) GetServiceInstances(filters ...Filter) ([]ServiceInstance, Warnings, error)
GetServiceInstances returns back a list of *managed* Service Instances based off of the provided filters.
func (*Client) GetServicePlan ¶
func (client *Client) GetServicePlan(servicePlanGUID string) (ServicePlan, Warnings, error)
GetServicePlan returns the service plan with the given GUID.
func (*Client) GetServicePlanVisibilities ¶
func (client *Client) GetServicePlanVisibilities(filters ...Filter) ([]ServicePlanVisibility, Warnings, error)
GetServicePlanVisibilities returns back a list of Service Plan Visibilities given the provided filters.
func (*Client) GetServicePlans ¶
func (client *Client) GetServicePlans(filters ...Filter) ([]ServicePlan, Warnings, error)
func (*Client) GetServices ¶
GetServices returns a list of Services given the provided filters.
func (*Client) GetSharedDomain ¶
GetSharedDomain returns the Shared Domain associated with the provided Domain GUID.
func (*Client) GetSharedDomains ¶
GetSharedDomains returns the global shared domains.
func (*Client) GetSpaceQuotaDefinition ¶
func (client *Client) GetSpaceQuotaDefinition(guid string) (SpaceQuota, Warnings, error)
GetSpaceQuotaDefinition returns a Space Quota.
func (*Client) GetSpaceRoutes ¶
func (client *Client) GetSpaceRoutes(spaceGUID string, filters ...Filter) ([]Route, Warnings, error)
GetSpaceRoutes returns a list of Routes associated with the provided Space GUID, and filtered by the provided filters.
func (*Client) GetSpaceSecurityGroups ¶
func (client *Client) GetSpaceSecurityGroups(spaceGUID string, filters ...Filter) ([]SecurityGroup, Warnings, error)
GetSpaceSecurityGroups returns the running Security Groups associated with the provided Space GUID.
func (*Client) GetSpaceServiceInstances ¶
func (client *Client) GetSpaceServiceInstances(spaceGUID string, includeUserProvidedServices bool, filters ...Filter) ([]ServiceInstance, Warnings, error)
GetSpaceServiceInstances returns back a list of Service Instances based off of the space and filters provided. User provided services will be included if includeUserProvidedServices is set to true.
func (*Client) GetSpaceStagingSecurityGroups ¶
func (client *Client) GetSpaceStagingSecurityGroups(spaceGUID string, filters ...Filter) ([]SecurityGroup, Warnings, error)
GetSpaceStagingSecurityGroups returns the staging Security Groups associated with the provided Space GUID.
func (*Client) GetUserProvidedServiceInstanceServiceBindings ¶
func (client *Client) GetUserProvidedServiceInstanceServiceBindings(userProvidedServiceInstanceGUID string) ([]ServiceBinding, Warnings, error)
GetUserProvidedServiceInstanceServiceBindings returns back a list of Service Bindings for the provided user provided service instance GUID.
func (*Client) GetUserProvidedServiceInstances ¶
func (client *Client) GetUserProvidedServiceInstances(filters ...Filter) ([]ServiceInstance, Warnings, error)
GetUserProvidedServiceInstances returns back a list of *user provided* Service Instances based off the provided queries.
func (*Client) Info ¶
func (client *Client) Info() (APIInformation, Warnings, error)
Info returns back endpoint and API information from /v2/info.
func (*Client) MinCLIVersion ¶
MinCLIVersion returns the minimum CLI version required for the targeted Cloud Controller
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) RestageApplication ¶
func (client *Client) RestageApplication(app Application) (Application, Warnings, error)
RestageApplication restages the application with the given GUID.
func (*Client) RoutingEndpoint ¶
RoutingEndpoint returns the Routing endpoint for the targeted Cloud Controller.
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) TokenEndpoint ¶
TokenEndpoint returns the Token endpoint for the targeted Cloud Controller.
func (*Client) UpdateApplication ¶
func (client *Client) UpdateApplication(app Application) (Application, Warnings, error)
UpdateApplication updates the application with the given GUID. Note: Sending DockerImage and StackGUID at the same time will result in an API error.
func (*Client) UpdateBuildpack ¶
UpdateBuildpack updates the buildpack with the provided GUID and returns the updated buildpack.
func (*Client) UpdateResourceMatch ¶
func (client *Client) UpdateResourceMatch(resourcesToMatch []Resource) ([]Resource, Warnings, error)
UpdateResourceMatch returns the resources that exist on the cloud foundry instance from the set of resources given.
func (*Client) UpdateRouteApplication ¶
func (client *Client) UpdateRouteApplication(routeGUID string, appGUID string) (Route, Warnings, error)
UpdateRouteApplication creates a link between the route and application.
func (*Client) UpdateSecurityGroupSpace ¶
func (client *Client) UpdateSecurityGroupSpace(securityGroupGUID string, spaceGUID string) (Warnings, error)
UpdateSecurityGroupSpace associates a security group in the running phase for the lifecycle, specified by its GUID, from a space, which is also specified by its GUID.
func (*Client) UpdateSecurityGroupStagingSpace ¶
func (client *Client) UpdateSecurityGroupStagingSpace(securityGroupGUID string, spaceGUID string) (Warnings, error)
UpdateSecurityGroupStagingSpace associates a security group in the staging phase for the lifecycle, specified by its GUID, from a space, which is also specified by its GUID.
func (*Client) UploadApplicationPackage ¶
func (client *Client) UploadApplicationPackage(appGUID string, existingResources []Resource, newResources Reader, newResourcesLength int64) (Job, Warnings, error)
UploadApplicationPackage uploads the newResources and a list of existing resources to the cloud controller. A job that combines the requested/newly uploaded bits 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. newResourcesLength is ignored in this case.
func (*Client) UploadBuildpack ¶
func (client *Client) UploadBuildpack(buildpackGUID string, buildpackPath string, buildpack io.Reader, buildpackLength int64) (Warnings, error)
UploadBuildpack uploads the contents of a buildpack zip to the server.
func (*Client) UploadDroplet ¶
func (client *Client) UploadDroplet(appGUID string, droplet io.Reader, dropletLength int64) (Job, Warnings, error)
UploadDroplet defines and uploads a previously staged droplet that an application will run, using a multipart PUT request. The uploaded file should be a gzipped tar file.
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 DockerCredentials ¶
type DockerCredentials struct { // Username is the username for a user that has access to a given docker // image. Username string `json:"username,omitempty"` // Password is the password for the user. Password string `json:"password,omitempty"` }
DockerCredentials are the authentication credentials to pull a docker image from it's repository.
type Domain ¶
type Domain struct { // GUID is the unique domain identifier. GUID string // Name is the name given to the domain. Name string // RouterGroupGUID is the unique identier of the router group this domain is // assigned to. RouterGroupGUID string // RouterGroupType is the type of router group this domain is assigned to. It // can be of type `tcp` or `http`. RouterGroupType constant.RouterGroupType // DomainType is the access type of the domain. It can be either a domain // private to a single org or it can be a domain shared to all orgs. Type constant.DomainType }
Domain represents a Cloud Controller Domain.
func (*Domain) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller Domain response.
type Event ¶
type Event struct { // GUID is the unique event identifier. GUID string // Type is the type of event. Type constant.EventType // ActorGUID is the GUID of the actor initiating an event. ActorGUID string // ActorType is the type of actor initiating an event. ActorType string // ActorName is the name of the actor initiating an event. ActorName string // ActeeGUID is the GUID of the cc object affected by an event. ActeeGUID string // ActeeType is the type of the cc object affected by an event. ActeeType string // ActeeName is the name of the cc object affected by an event. ActeeName string // Timestamp is the event creation time. Timestamp time.Time // Metadata contains additional information about the event. Metadata map[string]interface{} }
Event represents a Cloud Controller Event
func (*Event) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller Event response.
type FeatureFlag ¶
type FeatureFlag struct { // Name is a string representation of the Cloud Controller // feature flag's name. Name string `json:"name"` // Enabled is the status of the Cloud Controller feature // flag. Enabled bool `json:"enabled"` }
FeatureFlag represents a Cloud Controller feature flag.
type Filter ¶
type Filter struct { // Type is the component that determines what the query is filtered by. Type constant.FilterType // Operator is the component that determines how the the query will be filtered. Operator constant.FilterOperator // Values is the component that determines what values are filtered. Values []string }
Filter is a type of filter that can be passed to specific request to narrow down the return set.
type Job ¶
type Job struct { // Error is the error a job returns if it failed. It is otherwise empty. Error string // ErrorDetails is a detailed description of a job failure returned by the // Cloud Controller. ErrorDetails struct { Description string } // GUID is the unique job identifier. GUID string // Status is the current state of the job. Status constant.JobStatus }
Job represents a Cloud Controller Job.
func (*Job) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller Job response.
type LastOperation ¶
type LastOperation struct { // Type is the type of operation that was last performed or currently being // performed on the service instance. Type string `json:"type"` // State is the status of the last operation or current operation being // performed on the service instance. State constant.LastOperationState `json:"state"` // Description is the service broker-provided description of the operation. Description string `json:"description"` // UpdatedAt is the timestamp that the Cloud Controller last checked the // service instance state from the broker. UpdatedAt string `json:"updated_at"` // CreatedAt is the timestamp that the Cloud Controller created the service // instance from the broker. CreatedAt string `json:"created_at"` }
LastOperation is the status of the last operation requested on a service instance.
type Organization ¶
type Organization struct { // GUID is the unique Organization identifier. GUID string // Name is the organization's name. Name string // QuotaDefinitionGUID is unique identifier of the quota assigned to this // organization. QuotaDefinitionGUID string // DefaultIsolationSegmentGUID is the unique identifier of the isolation // segment this organization is tagged with. DefaultIsolationSegmentGUID string }
Organization represents a Cloud Controller Organization.
func (*Organization) UnmarshalJSON ¶
func (org *Organization) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Organization response.
type OrganizationQuota ¶
type OrganizationQuota struct { // GUID is the unique OrganizationQuota identifier. GUID string // Name is the name of the OrganizationQuota. Name string }
OrganizationQuota is the definition of a quota for an organization.
func (*OrganizationQuota) UnmarshalJSON ¶
func (application *OrganizationQuota) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller organization quota response.
type PaginatedResources ¶
type PaginatedResources struct { NextURL string `json:"next_url"` 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) 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 Resource ¶
type Resource 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"` }
Resource represents a Cloud Controller Resource.
func (Resource) MarshalJSON ¶
MarshalJSON converts a resource into a Cloud Controller Resource.
func (*Resource) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller Resource response.
type Route ¶
type Route struct { // GUID is the unique Route identifier. GUID string `json:"-"` // Host is the hostname of the route. Host string `json:"host,omitempty"` // Path is the path of the route. Path string `json:"path,omitempty"` // Port is the port number of the route. Port types.NullInt `json:"port,omitempty"` // DomainGUID is the unique Domain identifier. DomainGUID string `json:"domain_guid"` // SpaceGUID is the unique Space identifier. SpaceGUID string `json:"space_guid"` }
Route represents a Cloud Controller Route.
func (*Route) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller Route response.
type RouteMapping ¶
type RouteMapping struct { // GUID is the unique route mapping identifier. GUID string // AppGUID is the unique application identifier. AppGUID string // RouteGUID is the unique route identifier. RouteGUID string }
RouteMapping represents a Cloud Controller map between an application and route.
func (*RouteMapping) UnmarshalJSON ¶
func (routeMapping *RouteMapping) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Route Mapping
type SecurityGroup ¶
type SecurityGroup struct { // GUID is the unique Security Group identifier. GUID string // Name is the Security Group's name. Name string // Rules are the Security Group Rules associated with this Security Group. Rules []SecurityGroupRule // RunningDefault is true when this Security Group is applied to all running // apps in the CF instance. RunningDefault bool // StagingDefault is true when this Security Group is applied to all staging // apps in the CF instance. StagingDefault bool }
SecurityGroup represents a Cloud Controller Security Group.
func (*SecurityGroup) UnmarshalJSON ¶
func (securityGroup *SecurityGroup) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Security Group response
type SecurityGroupRule ¶
type SecurityGroupRule struct { // Description is a short message discribing the rule. Description string // Destination is the destination CIDR or range of IPs. Destination string // Ports is the port or port range. Ports string // Protocol can be tcp, icmp, udp, all. Protocol string }
SecurityGroupRule represents a Cloud Controller Security Group Role.
type Service ¶
type Service struct { // GUID is the unique Service identifier. GUID string // Label is the name of the service. Label string // Description is a short blurb describing the service. Description string // DocumentationURL is a url that points to a documentation page for the // service. DocumentationURL string // Extra is a field with extra data pertaining to the service. Extra ServiceExtra }
Service represents a Cloud Controller Service.
func (*Service) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller Service response.
type ServiceBinding ¶
type ServiceBinding struct { // AppGUID is the associated application GUID. AppGUID string // GUID is the unique Service Binding identifier. GUID string // LastOperation LastOperation LastOperation // Name is the name of the service binding Name string // ServiceInstanceGUID is the associated service GUID. ServiceInstanceGUID string }
ServiceBinding represents a Cloud Controller Service Binding.
func (*ServiceBinding) UnmarshalJSON ¶
func (serviceBinding *ServiceBinding) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Service Binding response.
type ServiceBroker ¶
type ServiceBroker struct { // GUID is the unique Service Broker identifier. GUID string // Name is the name of the service broker. Name string }
ServiceBroker represents a Cloud Controller Service Broker.
func (*ServiceBroker) UnmarshalJSON ¶
func (serviceBroker *ServiceBroker) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Service Broker response.
type ServiceExtra ¶
type ServiceExtra struct { // spaces. Shareable bool }
ServiceExtra contains extra service related properties.
type ServiceInstance ¶
type ServiceInstance struct { // GUID is the unique service instance identifier. GUID string // Name is the name given to the service instance. Name string // SpaceGUID is the unique identifier of the space that this service instance // belongs to. SpaceGUID string // ServiceGUID is the unique identifier of the service that this service // instance belongs to. ServiceGUID string // ServicePlanGUID is the unique identifier of the service plan that this // service instance belongs to. ServicePlanGUID string // Type is the type of service instance. Type constant.ServiceInstanceType // Tags is a list of all tags for the service instance. Tags []string // DashboardURL is the service-broker provided URL to access administrative // features of the service instance. DashboardURL string // LastOperation is the status of the last operation requested on the service // instance. LastOperation LastOperation }
ServiceInstance represents a Cloud Controller Service Instance.
func (ServiceInstance) Managed ¶
func (serviceInstance ServiceInstance) Managed() bool
Managed returns true if the Service Instance is a managed service.
func (*ServiceInstance) UnmarshalJSON ¶
func (serviceInstance *ServiceInstance) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Service Instance response.
func (ServiceInstance) UserProvided ¶
func (serviceInstance ServiceInstance) UserProvided() bool
UserProvided returns true if the Service Instance is a user provided service.
type ServiceInstanceSharedFrom ¶
type ServiceInstanceSharedFrom struct { // shared from. SpaceGUID string `json:"space_guid"` SpaceName string `json:"space_name"` // shared from. OrganizationName string `json:"organization_name"` }
ServiceInstanceSharedFrom represents a Cloud Controller relationship object that describes a service instance in another space (and possibly org) that this service instance is **shared from**.
type ServiceInstanceSharedTo ¶
type ServiceInstanceSharedTo struct { // shared to. SpaceGUID string `json:"space_guid"` SpaceName string `json:"space_name"` // shared to. OrganizationName string `json:"organization_name"` // service instance. BoundAppCount int `json:"bound_app_count"` }
ServiceInstanceSharedTo represents a Cloud Controller relationship object that describes a service instance in another space (and possibly org) that this service is **shared to**.
type ServicePlan ¶
type ServicePlan struct { //GUID is the unique identifier of the service plan. GUID string // Name is the name of the service plan. Name string // ServiceGUID is the unique identifier of the service that the service // plan belongs to. ServiceGUID string // Public is true if plan is accessible to all organizations. Public bool }
ServicePlan represents a predefined set of configurations for a Cloud Controller service object.
func (*ServicePlan) UnmarshalJSON ¶
func (servicePlan *ServicePlan) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Service Plan response.
type ServicePlanVisibility ¶
type ServicePlanVisibility struct { // GUID is the unique Service Plan Visibility identifier. GUID string // ServicePlanGUID of the associated Service Plan. ServicePlanGUID string // OrganizationGUID of the associated Organization. OrganizationGUID string }
ServicePlanVisibility represents a Cloud Controller Service Plan Visibility.
func (*ServicePlanVisibility) UnmarshalJSON ¶
func (servicePlanVisibility *ServicePlanVisibility) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Service Plan Visibilities response.
type Space ¶
type Space struct { // GUID is the unique space identifier. GUID string // OrganizationGUID is the unique identifier of the organization this space // belongs to. OrganizationGUID string // Name is the name given to the space. Name string // AllowSSH specifies whether SSH is enabled for this space. AllowSSH bool // SpaceQuotaDefinitionGUID is the unique identifier of the space quota // defined for this space. SpaceQuotaDefinitionGUID string }
Space represents a Cloud Controller Space.
func (*Space) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller Space response.
type SpaceQuota ¶
type SpaceQuota struct { // GUID is the unique space quota identifier. GUID string // Name is the name given to the space quota. Name string }
SpaceQuota represents the Cloud Controller configured quota assigned to the space.
func (*SpaceQuota) UnmarshalJSON ¶
func (spaceQuota *SpaceQuota) UnmarshalJSON(data []byte) error
UnmarshalJSON helps unmarshal a Cloud Controller Space Quota response.
type Stack ¶
type Stack struct { // GUID is the unique stack identifier. GUID string // Name is the name given to the stack. Name string // Description is the description of the stack. Description string }
Stack represents a Cloud Controller Stack.
func (*Stack) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller Stack response.
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 User ¶
type User struct { // GUID is the unique user identifier. GUID string }
User represents a Cloud Controller User.
func (*User) UnmarshalJSON ¶
UnmarshalJSON helps unmarshal a Cloud Controller User response.
Source Files ¶
- application.go
- application_instance.go
- application_instance_status.go
- buildpack.go
- client.go
- connection_wrapper.go
- docker_credentials.go
- domain.go
- errors.go
- event.go
- feature_flag.go
- filter.go
- info.go
- job.go
- last_operation.go
- organization.go
- organization_quota.go
- paginated_resources.go
- request.go
- resource.go
- route.go
- route_mapping.go
- security_group.go
- security_group_rule.go
- service.go
- service_binding.go
- service_broker.go
- service_extra.go
- service_instance.go
- service_instance_shared_from.go
- service_instance_shared_to.go
- service_plan.go
- service_plan_visibility.go
- space.go
- space_quota.go
- stack.go
- target.go
- user.go