Documentation ¶
Index ¶
- Constants
- type BindingLastOperationRequest
- type BindingRequest
- type BrokerErrorResponse
- type Catalog
- type ContextProfile
- type CreateServiceBindingResponse
- type CreateServiceInstanceRequest
- type CreateServiceInstanceResponse
- type Credential
- type DeleteServiceInstanceRequest
- type DeleteServiceInstanceResponse
- type GetBindingRequest
- type GetBindingResponse
- type InputParameters
- type LastOperationRequest
- type LastOperationResponse
- type ParameterMapSchemas
- type ParameterProperty
- type Schemas
- type Service
- type ServiceBinding
- type ServiceBindingSchema
- type ServiceBroker
- type ServiceInstance
- type ServiceInstanceSchema
- type ServicePlan
- type Types
- type WorkerResponse
Constants ¶
const ( // InstanceType is a string constant representation of the instance type InstanceType = "instanceType" // BindingType is a string constant representation of the binding type BindingType = "bindingType" )
const ( StateInProgress = "in progress" StateSucceeded = "succeeded" StateFailed = "failed" )
Defines the possible states of an asynchronous request to a broker
const ContextProfilePlatformKubernetes string = "kubernetes"
ContextProfilePlatformKubernetes is a constant to send when the client is representing a kubernetes style ecosystem.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BindingLastOperationRequest ¶
type BindingLastOperationRequest struct { // InstanceID is the instance of the service to query the last operation // for. InstanceID string `json:"instance_id"` // BindingID is the binding to query the last operation for. BindingID string `json:"binding_id"` // ServiceID is the ID of the service the instance is provisioned from. // Optional, but recommended. ServiceID string `json:"service_id,omitempty"` // PlanID is the ID of the plan the instance is provisioned from. // Optional, but recommended. PlanID string `json:"plan_id,omitempty"` // OperationKey is the operation key provided by the broker in the response // to the initial request. Optional, but must be sent if supplied in the // response to the original request. OperationKey string `json:"operation,omitempty"` }
BindingLastOperationRequest represents a request to a broker to give the state of the action on a binding it is completing asynchronously.
type BindingRequest ¶
type BindingRequest struct { AppGUID string `json:"app_guid,omitempty"` PlanID string `json:"plan_id,omitempty"` ServiceID string `json:"service_id,omitempty"` BindResource map[string]interface{} `json:"bind_resource,omitempty"` Parameters map[string]interface{} `json:"parameters,omitempty"` }
BindingRequest represents a request to bind to a service instance
type BrokerErrorResponse ¶
type Catalog ¶
type Catalog struct {
Services []*Service `json:"services"`
}
Catalog is a JSON-compatible type to be used to decode the result from a /v2/catalog call to an open service broker compatible API
type ContextProfile ¶
type ContextProfile struct { // Platform is always `kubernetes` Platform string `json:"platform,omitempty"` // Namespace is the Kubernetes namespace in which the service instance will be visible. Namespace string `json:"namespace,omitempty"` }
ContextProfile implements the optional OSB field https://github.com/duglin/servicebroker/blob/CFisms/context-profiles.md#kubernetes
type CreateServiceBindingResponse ¶
type CreateServiceBindingResponse struct {
Credentials Credential `json:"credentials"`
}
CreateServiceBindingResponse represents a response to a service binding request
type CreateServiceInstanceRequest ¶
type CreateServiceInstanceRequest struct { OrgID string `json:"organization_guid,omitempty"` PlanID string `json:"plan_id,omitempty"` ServiceID string `json:"service_id,omitempty"` SpaceID string `json:"space_guid,omitempty"` Parameters map[string]interface{} `json:"parameters,omitempty"` AcceptsIncomplete bool `json:"accepts_incomplete,omitempty"` ContextProfile ContextProfile `json:"context,omitempty"` }
CreateServiceInstanceRequest represents a request to a broker to provision an instance of a service
type CreateServiceInstanceResponse ¶
type CreateServiceInstanceResponse struct { DashboardURL string `json:"dashboard_url,omitempty"` Operation string `json:"operation,omitempty"` }
CreateServiceInstanceResponse represents the response from a broker after a request to provision an instance of a service
type Credential ¶
type Credential map[string]interface{}
Credential represents connection details, username, and password that are provisioned when a consumer binds to a service instance
type DeleteServiceInstanceRequest ¶
type DeleteServiceInstanceRequest struct { ServiceID string `json:"service_id"` PlanID string `json:"plan_id"` AcceptsIncomplete bool `json:"accepts_incomplete,omitempty"` }
DeleteServiceInstanceRequest represents a request to a broker to deprovision an instance of a service
type DeleteServiceInstanceResponse ¶
type DeleteServiceInstanceResponse struct {
Operation string `json:"operation,omitempty"`
}
DeleteServiceInstanceResponse represents the response from a broker after a request to deprovision an instance of a service
type GetBindingRequest ¶
type GetBindingRequest struct { // InstanceID is the ID of the instance the binding is for. InstanceID string `json:"instance_id"` // BindingID is the ID of the binding to delete. BindingID string `json:"binding_id"` }
GetBindingRequest represents a request to do a GET on a particular binding.
type GetBindingResponse ¶
type GetBindingResponse struct { // Credentials is a free-form hash of credentials that can be used by // applications or users to access the service. Credentials Credential `json:"credentials,omitempty"` // SyslogDrainURl is a URL to which logs must be streamed. CF-specific. May // only be supplied by a service that declares a requirement for the // 'syslog_drain' permission. SyslogDrainURL *string `json:"syslog_drain_url,omitempty"` // RouteServiceURL is a URL to which the platform must proxy requests to the // application the binding is for. CF-specific. May only be supplied by a // service that declares a requirement for the 'route_service' permission. RouteServiceURL *string `json:"route_service_url,omitempty"` // VolumeMounts is an array of configuration string for mounting volumes. // CF-specific. May only be supplied by a service that declares a // requirement for the 'volume_mount' permission. VolumeMounts []interface{} `json:"volume_mounts,omitempty"` // Parameters is configuration parameters for the binding. Parameters map[string]interface{} `json:"parameters,omitempty"` }
GetBindingResponse is sent as the response to doing a GET on a particular binding.
type InputParameters ¶
type InputParameters struct {
Parameters interface{} `json:"parameters,omitempty"`
}
InputParameters represents a schema for input parameters for creation or update of an API resource.
type LastOperationRequest ¶
type LastOperationRequest struct { ServiceID string `json:"service_id,omitempty"` PlanID string `json:"plan_id,omitempty"` Operation string `json:"operation,omitempty"` }
LastOperationRequest represents a request to a broker to give the state of the action it is completing asynchronously
type LastOperationResponse ¶
type LastOperationResponse struct { State string `json:"state"` Description string `json:"description,omitempty"` }
LastOperationResponse represents the broker response with the state of a discrete action that the broker is completing asynchronously
type ParameterMapSchemas ¶
type ParameterMapSchemas struct { Schema string `json:"$schema"` Type string `json:"type"` Properties map[string]ParameterProperty `json:"properties"` }
ParameterMapSchemas describe the parameters information
type ParameterProperty ¶
ParameterProperty describe a parameter's information and type
type Schemas ¶
type Schemas struct { ServiceInstances *ServiceInstanceSchema `json:"service_instance,omitempty"` ServiceBindings *ServiceBindingSchema `json:"service_binding,omitempty"` }
Schemas represents a plan's schemas for service instance and binding create and update.
type Service ¶
type Service struct { Name string `json:"name"` ID string `json:"id"` Description string `json:"description"` Tags []string `json:"tags,omitempty"` Requires []string `json:"requires,omitempty"` Bindable bool `json:"bindable"` Metadata interface{} `json:"metadata,omitempty"` DashboardClient interface{} `json:"dashboard_client"` PlanUpdateable bool `json:"plan_updateable,omitempty"` Plans []ServicePlan `json:"plans"` }
Service represents a service (of which there may be many variants-- "plans") offered by a service broker
type ServiceBinding ¶
type ServiceBinding struct { ID string `json:"id"` ServiceID string `json:"service_id"` AppID string `json:"app_id"` ServicePlanID string `json:"service_plan_id"` PrivateKey string `json:"private_key"` ServiceInstanceID string `json:"service_instance_id"` BindResource map[string]interface{} `json:"bind_resource,omitempty"` Parameters map[string]interface{} `json:"parameters,omitempty"` }
ServiceBinding represents a binding to a service instance
type ServiceBindingSchema ¶
type ServiceBindingSchema struct {
Create *InputParameters `json:"create,omitempty"`
}
ServiceBindingSchema represents a plan's schemas for the parameters accepted for binding creation.
type ServiceBroker ¶
type ServiceBroker interface { Catalog() (*Catalog, error) GetInstanceStatus(instanceID, serviceID, planID string, parameterIn map[string]interface{}) (bool, error) Provision(instanceID, serviceID, planID string, parameterIn map[string]interface{}) (map[string]interface{}, error) Deprovision(instanceID, serviceID, planID string, parameterIn map[string]interface{}) error GetBindingStatus(instanceID, serviceID, planID, bindingID string, parameterInstance, parameterIn map[string]interface{}) (bool, error) Bind(instanceID, serviceID, planID, bindingID string, parameterInstance, parameterIn map[string]interface{}) (map[string]interface{}, Credential, error) UnBind(instanceID, serviceID, planID, bindingID string, parameterInstance, parameterIn map[string]interface{}) error }
ServiceBroker the standard interface of open service broker which each specific service provider must implement.
type ServiceInstance ¶
type ServiceInstance struct { ID string `json:"id"` DashboardURL string `json:"dashboard_url"` InternalID string `json:"internal_id,omitempty"` ServiceID string `json:"service_id"` PlanID string `json:"plan_id"` OrganizationGUID string `json:"organization_guid"` SpaceGUID string `json:"space_guid"` LastOperation *LastOperationResponse `json:"last_operation,omitempty"` Parameters map[string]interface{} `json:"parameters,omitempty"` }
ServiceInstance represents an instance of a service
type ServiceInstanceSchema ¶
type ServiceInstanceSchema struct { Create *InputParameters `json:"create,omitempty"` Update *InputParameters `json:"update,omitempty"` }
ServiceInstanceSchema represents a plan's schemas for a create and update of a service instance.
type ServicePlan ¶
type ServicePlan struct { Name string `json:"name"` ID string `json:"id"` Description string `json:"description"` Metadata interface{} `json:"metadata,omitempty"` Free bool `json:"free,omitempty"` Bindable *bool `json:"bindable,omitempty"` Schemas *Schemas `json:"schemas,omitempty"` }
ServicePlan is the Open Service API compatible struct for service plans. It comes with with JSON struct tags to match the API spec
type WorkerResponse ¶
type WorkerResponse struct { Message interface{} Err error }