mysql servicebroker_CSP ServiceBroker接口标准

1. Catalog Management

使用Servicebroker的第一步,作用是列出broker中所有可用的服务的详细信息,为后续创建服务等请求提供必要参数。

Request

Route

GET /v2/catalog

cURL

$ curl http://username:password@broker-url/v2/catalog

Response

状态码

描述

200 OK

同步请求成功

202 Accept

异步请求成功

Body

字段名

类型

描述

services

service-object-array

service的具体信息列表

Service Object

字段名

类型

描述

name

string

服务类型名,非空

id

string

服务类型id,服务类型的唯一标示符,在创建服务等请求中被使用,非空

description

string

关于该服务的简短描述

bindable

bool

服务是否可绑定到应用,默认为true

plan_updateable

bool

服务规格可更新,默认为true

tags

string-array

服务带有的标记

requires

string-array

服务所依赖的组件

metadata

object

服务带有的元数据

plan

object-array

服务所有的可用资源配额,至少一个plan

dashboard_client

object

用于创建客户端访问服务的入口地址的信息

Dashboard Client Object

字段名

类型

描述

id

string

用于客户端认证,如果需要认证,不可为空

secret

string

用于客户端认证的密码,如果需要认证,不可为空

redirect_uri

string

服务的Dashboard地址,如果需要认证,该参数则需要服务的token才可使用

Plan Object

字段名

类型

描述

id

string

该资源配额的唯一标示符,用于创建服务的请求等,非空

name

string

该资源配额名,非空

description

string

该资源配额的描述

metadata

string

该资源配额的元数据

free

bool

该资源配额是否免费

2. Provisioning

创建服务

Request

Router

PUT /v2/service_instances/:instance_id

:instance_id 不能为空且唯一,这个id还用于绑定与删除等操作

Body

字段名

类型

描述

service_id

string

服务类型的id,来自catalog,代表要创建的服务类型

plan_id

string

服务资源配额id,来自catalog,代表要创建的服务的资源配额

organization_guid

string

组织的id

space_guid

string

组织下空间的id

parameters

object

创建服务所必需的参数

例如

{

"service_id": "service-id-here",

"plan_id": "plan-id-here",

"organization_guid": "org-guid-here",

"space_guid": "space-guid-here",

"parameters": {

"parameter1": 1,

"parameter2": "foo"

}

}

cURL

$ curl http://username:password@broker-url/v2/service_instances/:instance_id?accepts_incomplete=true -d '{

"service_id": "service-id-here",

"plan_id": "plan-id-here",

"organization_guid": "org-guid-here",

"space_guid": "space-guid-here",

"parameters": {

"parameter1": 1,

"parameter2": "foo"

}

}' -X PUT -H "Content-Type: application/json"

Response

状态码

描述

200 OK

同步请求成功

202 Accept

异步请求成功

409 Conflict

存在相同的instance_id的应用

400 Bad Request

请求的Body数据非法

Body

字段名

类型

描述

dashboard_url

string

客户端访问该服务的入口地址

last_operation

object

服务当前的状态信息

例如:

{

"dashboard_url": "http://example.com/uhdiqwndi",

"last_operation": {

"state": "starting",

"description": "creating service instance..."

}

}

3. Polling Last Operation

当Servicebroker在创建,删除,绑定服务时返回了202 Accept,使用该/v2/service_instances/:instance_id/last_operationapi会返回服务当前的状态。

Request

Route

:instance_id不能为空

cURL

$ curl http://username:password@broker-url/v2/service_instances/:instance_id/last_operation

Response

状态码

描述

200 OK

同步请求成功

202 Accept

异步请求成功

410 Gone

不存在这个服务应用

Body

字段名

类型

描述

state

string

返回的值有in progress和succeeded,代表服务当前的状态

description

string

对这个服务当前状态的描述

例如:

{

"state": "in progress",

"description": "Creating service (10% complete)."

}

4. Updating a Service Instance

通过这个API可以修改已经创建的服务的资源配额plan和参数parameters

要实现这个API,必须在Catalog操作中的该服务有plan_updateable: true这个属性

Request

Route

PATCH /v2/service_instances/:instance_id

:instance_id 与创建服务时相同,非空且唯一

Body

字段名

类型

描述

service_id

string

服务类型的id,来自catalog

plan_id

string

服务的资源配额id,来自catalog

parameters

object

服务需要参数,会替换在创建服务时的值

previous_values

object

创建服务时的参数的值

previous_values.plan_id

string

创建服务时的资源配额id

previous_values.service_id

string

创建服务时的服务id

previous_values.organization_id

string

创建服务时的组织id

previous_values.space_id

string

创建服务时的组织的空间id

例如:

{

"service_id": "service-id-here",

"plan_id": "plan-id-here",

"parameters": {

"parameter1": 1,

"parameter2": "foo"

},

"previous_values": {

"plan_id": "old-plan-id-here",

"service_id": "service-id-here",

"organization_id": "org-guid-here",

"space_id": "space-guid-here"

}

}

cURL

$ curl http://username:password@broker-url/v2/service_instances/:instance_id?accepts_incomplete=true -d '{

"context": {

"platform": "cloudfoundry",

"some_field": "some-contextual-data"

},

"service_id": "service-id-here",

"plan_id": "plan-id-here",

"parameters": {

"parameter1": 1,

"parameter2": "foo"

},

"previous_values": {

"plan_id": "old-plan-id-here",

"service_id": "service-id-here",

"organization_id": "org-guid-here",

"space_id": "space-guid-here"

}

}' -X PATCH -H "Content-Type: application/json"

Response

状态码

描述

200 OK

同步请求成功

202 Accept

异步请求成功

400 Bad Request

请求的Body数据非法

Body

字段名

类型

描述

operation

string

返回这次更新的操作名,非空

5. Binding

给该服务绑定额外的功能

如果在catalog中服务的参数bindable为true,则可以执行这个操作。

Credentials

为服务绑定一个新客户端的访问入口,返回包括认证信息,主机名等

Log Drain

为服务绑定一个新的日志管道,使服务的日志可以导入到别的应用中

Broker 如果返回的信息包括了syslog_drain_url,则在Catalog中该服务必须有"requires":["route_forwarding"]存在

Request

Route

PUT /v2/service_instances/:instance_id/service_bindings/:binding_id

:instance_id 与创建服务时的值相同

:binding_id 唯一且非空

Body

字段名

类型

描述

service_id

string

来自catalog,非空

plan_id

string

来自catalog,非空

app_guid

string

被绑定到服务的应用id,非空唯一

bind_resource

object

被绑定到服务的应用

parameters

object

绑定需要的参数

例如:

{

"service_id": "service-id-here",

"plan_id": "plan-id-here",

"app_guid": "app-guid-here",

"bind_resource": {

"app_guid": "app-guid-here"

},

"parameters": {

"parameter1-name-here": 1,

"parameter2-name-here": "parameter2-value-here"

}

}

cURL

$ curl http://username:password@broker-url/v2/service_instances/:instance_id/service_bindings/:binding_id -d '{

"service_id": "service-id-here",

"plan_id": "plan-id-here",

"app_guid": "app-guid-here",

"bind_resource": {

"app_guid": "app-guid-here"

},

"parameters": {

"parameter1-name-here": 1,

"parameter2-name-here": "parameter2-value-here"

}

}' -X PUT -H "Content-Type: application/json"

Response

状态码

描述

200 OK

同步请求成功

202 Accept

异步请求成功

409 Conflict

存在相同的binding_id的应用

400 Bad Request

请求的Body数据非法

Body

字段名

类型

描述

credentials

object

为服务绑定一个新客户端的访问入口,返回包括认证信息,主机名等

syslog_drain_url

string

来自catalog,非空

例如:

{

"credentials": {

"uri": "mysql://mysqluser:pass@mysqlhost:3306/dbname",

"username": "mysqluser",

"password": "pass",

"host": "mysqlhost",

"port": 3306,

"database": "dbname"

}

}

6. Unbinding

解除服务所绑定的额外功能

Request

Route

DELETE /v2/service_instances/:instance_id/service_bindings/:binding_id

:instance_id 与绑定服务时的值相同,唯一且非空

:binding_id 与绑定服务时的值相同,唯一且非空

cURL

$ curl 'http://username:password@broker-url/v2/service_instances/:instance_id/

service_bindings/:binding_id' -X DELETE

Response

状态码

描述

200 OK

同步请求成功

202 Accept

异步请求成功

410 Gone

不存在这个服务或不存在这个绑定操作

7. Deprovisioning

删除服务

Request

Route

DELETE /v2/service_instances/:instance_id

:instance_id与创建服务时的值相同

cURL

curl 'http://username:password@broker-url/v2/service_instances/:instance_id -X DELETE

Response

状态码

描述

200 OK

同步请求成功

202 Accept

异步请求成功

410 Gone

不存在这个服务

Broker Errors

Response

Body

字段名

类型

描述

error

string

错误名

description

string

对错误的描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值