{"openapi":"3.1.0","info":{"title":"Converge Cloud — Cloud Load Balancer (clb)","version":"2018-03-17","summary":"23 actions.","description":"Endpoint `https://clb.api3.convergecloud.com`, region `luzon`, `X-TC-Version: 2018-03-17`.\n\nA wrong `X-TC-Version` returns `InvalidAction`, which is indistinguishable from a missing action — this was the single largest source of false “absent” verdicts in our own measurements."},"servers":[{"url":"https://clb.api3.convergecloud.com","description":"Converge Cloud production (luzon — the only region)"}],"x-cc-wire-protocol":{"style":"RPC over HTTP POST","realPath":"/","actionHeader":"X-TC-Action","versionHeader":"X-TC-Version","version":"2018-03-17","note":"Every operation in this document is really `POST /` to the server above with `X-TC-Action: <Action>`. Paths of the form `/clb/<Action>` exist so the actions are individually addressable, linkable and renderable; they are not routes on the server.","signing":"TC3-HMAC-SHA256","region":"luzon","clockSkewSeconds":300},"security":[{"TC3":[]}],"tags":[{"name":"clb","description":"Cloud Load Balancer"}],"paths":{"/clb/CreateListener":{"post":{"operationId":"clb_CreateListener","summary":"CreateListener","description":"Create a listener for a CLB instance.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: CreateListener' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerId\":\"<LoadBalancerId>\",\"Ports\":\"<Ports>\",\"Protocol\":\"<Protocol>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"CreateListener","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["LoadBalancerId","Ports","Protocol"],"x-cc-notable-params":["Certificate"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerId":{"type":"string"},"Ports":{"type":"string"},"Protocol":{"type":"string"},"Certificate":{"type":"string","description":"Optional."}},"required":["LoadBalancerId","Ports","Protocol"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerId":"<LoadBalancerId>","Ports":"<Ports>","Protocol":"<Protocol>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"error1":{"summary":"Example error response 1","value":{"Response":{"RequestId":"5bb01994-887a-c603-136d-c707ff7e961b","Error":{"Code":"InvalidParameter","Message":"[Type 3002] Certificate: Additional property CertKeyName is not allowed; "}}}}}}}}}}},"/clb/CreateLoadBalancer":{"post":{"operationId":"clb_CreateLoadBalancer","summary":"CreateLoadBalancer","description":"Create a CLB instance. To use the CLB service, you first need to purchase one or more instances. After this API is called successfully, a unique instance ID will be returned. There are two types of instances: public network and private network. For more information, see the product types in the product documentation.\nLoad balancer writes occasionally return HTTP 200 with a null identifier and no effect. Read back with DescribeLoadBalancers before treating the result as applied.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: CreateLoadBalancer' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerType\":\"<LoadBalancerType>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"CreateLoadBalancer","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["LoadBalancerType"],"x-cc-notable-params":["Forward","LoadBalancerName","VpcId","SubnetId"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerType":{"type":"string"},"Forward":{"type":"string","description":"Optional."},"LoadBalancerName":{"type":"string","description":"Optional."},"VpcId":{"type":"string","description":"Optional."},"SubnetId":{"type":"string","description":"Optional."}},"required":["LoadBalancerType"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerType":"<LoadBalancerType>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/clb/DeleteCert":{"post":{"operationId":"clb_DeleteCert","summary":"DeleteCert","description":"Delete one or more certificates from the certificate store.\nTakes CertIds as an array; the singular CertId is rejected. A malformed identifier returns InvalidParameterValue.Length rather than ResourceNotFound.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DeleteCert' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"CertIds\":[\"<CertId>\"]}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DeleteCert","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["CertIds"],"x-cc-notable-params":["CertIds"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"CertIds":{"type":"array","items":{"type":"string"}}},"required":["CertIds"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"CertIds":["<CertId>"]}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"error1":{"summary":"Example error response 1","value":{"Response":{"Error":{"Code":"InvalidParameterValue.Length","Message":"The length of CertificateId 'cert-00000000' is not valid."},"RequestId":"c6020109-938d-df2e-391b-873d423f3fa9"}}}}}}}}}},"/clb/DeleteListener":{"post":{"operationId":"clb_DeleteListener","summary":"DeleteListener","description":"Delete listeners (layer-4 and layer-7) under a Cloud Load Balancer instance.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DeleteListener' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerId\":\"<LoadBalancerId>\",\"ListenerId\":\"<ListenerId>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DeleteListener","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["LoadBalancerId","ListenerId"],"x-cc-notable-params":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerId":{"type":"string"},"ListenerId":{"type":"string"}},"required":["LoadBalancerId","ListenerId"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerId":"<LoadBalancerId>","ListenerId":"<ListenerId>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"error1":{"summary":"Example error response 1","value":{"Response":{"Error":{"Code":"InvalidParameter","Message":"LoadBalancer not exist"},"RequestId":"7b15897b-3c3b-cab2-1b5e-19b51ea70982"}}}}}}}}}},"/clb/DeleteLoadBalancer":{"post":{"operationId":"clb_DeleteLoadBalancer","summary":"DeleteLoadBalancer","description":"Delete one or more specified CLB instances. After successful deletion, the listeners and forwarding rules under the CLB instance will be deleted together, and the backend service will be unbound.\nRead back with DescribeLoadBalancers; a successful response does not guarantee the load balancer was deleted.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DeleteLoadBalancer' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerIds\":[\"<LoadBalancerId>\"]}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DeleteLoadBalancer","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["LoadBalancerIds"],"x-cc-notable-params":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerIds":{"type":"array","items":{"type":"string"}}},"required":["LoadBalancerIds"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerIds":["<LoadBalancerId>"]}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"error1":{"summary":"Example error response 1","value":{"Response":{"Error":{"Code":"InvalidParameter.LBIdNotFound","Message":"Some loadBalancer not exist"},"RequestId":"0eeae055-5574-e006-61c5-bea14ee80ae2"}}}}}}}}}},"/clb/DeregisterTargets":{"post":{"operationId":"clb_DeregisterTargets","summary":"DeregisterTargets","description":"Unbind one or more real servers from a CLB listener or forwarding rule. For layer-4 listeners, only the listener ID needs to be specified. For layer-7 listeners, the forwarding rule also needs to be specified through LocationId or Domain+Url.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DeregisterTargets' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerId\":\"<LoadBalancerId>\",\"ListenerId\":\"<ListenerId>\",\"Targets\":\"<Targets>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DeregisterTargets","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["LoadBalancerId","ListenerId","Targets"],"x-cc-notable-params":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerId":{"type":"string"},"ListenerId":{"type":"string"},"Targets":{"type":"string"}},"required":["LoadBalancerId","ListenerId","Targets"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerId":"<LoadBalancerId>","ListenerId":"<ListenerId>","Targets":"<Targets>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"error1":{"summary":"Example error response 1","value":{"Response":{"Error":{"Code":"InvalidParameter","Message":"LoadBalancer not exist"},"RequestId":"abd32216-f60e-dddc-1dc3-c962cc246edd"}}}}}}}}}},"/clb/DescribeBlockIPList":{"post":{"operationId":"clb_DescribeBlockIPList","summary":"DescribeBlockIPList","description":"Query the list of blocked IPs (blocklist) of a CLB instance. (This API is in beta test. To use it, please submit a ticket.).\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeBlockIPList' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerId\":\"<LoadBalancerId>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeBlockIPList","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":["LoadBalancerId"],"x-cc-notable-params":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerId":{"type":"string"}},"required":["LoadBalancerId"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerId":"<LoadBalancerId>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/clb/DescribeCerts":{"post":{"operationId":"clb_DescribeCerts","summary":"DescribeCerts","description":"List the certificates stored in the load balancer certificate store.\nThe certificate store is part of the load balancer service, and the action that lists its certificates is DescribeCerts.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeCerts' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"Limit\":20,\"Offset\":0}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeCerts","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":[],"x-cc-notable-params":["Limit","Offset"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"Limit":{"type":"integer","minimum":0,"maximum":100,"description":"Page size. Maximum is 100. Optional."},"Offset":{"type":"integer","minimum":0,"description":"Zero-based pagination offset. Optional."}},"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"Limit":20,"Offset":0}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"recorded1":{"summary":"Example response","value":{"TotalCount":0,"CertList":[],"RequestId":"…"}}}}}}}}},"/clb/DescribeClusterResources":{"post":{"operationId":"clb_DescribeClusterResources","summary":"DescribeClusterResources","description":"Query the resources available in a load balancer cluster.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeClusterResources' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"Offset\":0,\"Limit\":20}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeClusterResources","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":[],"x-cc-notable-params":["Filters","Offset","Limit"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"Filters":{"type":"array","description":"Server-side filters. Unknown filter names are rejected rather than ignored. Optional.","items":{"type":"object","properties":{"Name":{"type":"string"},"Values":{"type":"array","items":{"type":"string"}}},"required":["Name","Values"]}},"Offset":{"type":"integer","minimum":0,"description":"Zero-based pagination offset. Optional."},"Limit":{"type":"integer","minimum":0,"maximum":100,"description":"Page size. Maximum is 100. Optional."}},"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"Offset":0,"Limit":20}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"recorded1":{"summary":"Example response","value":{"ClusterResourceSet":[],"TotalCount":0}}}}}}}}},"/clb/DescribeCustomizedConfigList":{"post":{"operationId":"clb_DescribeCustomizedConfigList","summary":"DescribeCustomizedConfigList","description":"Pull custom configuration lists to return the user configuration of `AppId`.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeCustomizedConfigList' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"ConfigType\":\"<ConfigType>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeCustomizedConfigList","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":["ConfigType"],"x-cc-notable-params":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ConfigType":{"type":"string"}},"required":["ConfigType"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"ConfigType":"<ConfigType>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/clb/DescribeListeners":{"post":{"operationId":"clb_DescribeListeners","summary":"DescribeListeners","description":"Get the list of listeners by CLB ID, listener protocol, or listener port. If no filter is specified, all listeners for the CLB instance will be returned.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeListeners' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerId\":\"<LoadBalancerId>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeListeners","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":["LoadBalancerId"],"x-cc-notable-params":["ListenerIds","Protocol","Port"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerId":{"type":"string"},"ListenerIds":{"type":"array","items":{"type":"string"},"description":"Optional."},"Protocol":{"type":"string","description":"Optional."},"Port":{"type":"integer","description":"Optional."}},"required":["LoadBalancerId"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerId":"<LoadBalancerId>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/clb/DescribeLoadBalancerListByCertId":{"post":{"operationId":"clb_DescribeLoadBalancerListByCertId","summary":"DescribeLoadBalancerListByCertId","description":"Query the list of CLB instances associated with a certificate in a region by certificate ID.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeLoadBalancerListByCertId' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"CertIds\":[\"<CertId>\"]}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeLoadBalancerListByCertId","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":["CertIds"],"x-cc-notable-params":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"CertIds":{"type":"array","items":{"type":"string"}}},"required":["CertIds"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"CertIds":["<CertId>"]}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/clb/DescribeLoadBalancers":{"post":{"operationId":"clb_DescribeLoadBalancers","summary":"DescribeLoadBalancers","description":"Query the list of CLB instances in a region.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeLoadBalancers' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"Offset\":0,\"Limit\":20}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeLoadBalancers","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":[],"x-cc-notable-params":["LoadBalancerIds","LoadBalancerType","VpcId","Offset","Limit"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerIds":{"type":"array","items":{"type":"string"},"description":"Optional."},"LoadBalancerType":{"type":"string","description":"Optional."},"VpcId":{"type":"string","description":"Optional."},"Offset":{"type":"integer","minimum":0,"description":"Zero-based pagination offset. Optional."},"Limit":{"type":"integer","minimum":0,"maximum":100,"description":"Page size. Maximum is 100. Optional."}},"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"Offset":0,"Limit":20}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"recorded1":{"summary":"Example response","value":{"Response":{"TotalCount":0,"LoadBalancerSet":[],"RequestId":"1dc4ca06-ca6d-b00f-08f0-9a9ff65fcc59"}}}}}}}}}},"/clb/DescribeRewrite":{"post":{"operationId":"clb_DescribeRewrite","summary":"DescribeRewrite","description":"Query the redirection relationship between the forwarding rules of a CLB instance by instance ID. If no listener ID or forwarding rule ID is specified, all redirection relationships in the instance will be returned.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeRewrite' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerId\":\"<LoadBalancerId>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeRewrite","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":["LoadBalancerId"],"x-cc-notable-params":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerId":{"type":"string"}},"required":["LoadBalancerId"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerId":"<LoadBalancerId>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/clb/DescribeTargetGroupList":{"post":{"operationId":"clb_DescribeTargetGroupList","summary":"DescribeTargetGroupList","description":"Get the target group list.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeTargetGroupList' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"Offset\":0,\"Limit\":20}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeTargetGroupList","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":[],"x-cc-notable-params":["Filters","Offset","Limit"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"Filters":{"type":"array","description":"Server-side filters. Unknown filter names are rejected rather than ignored. Optional.","items":{"type":"object","properties":{"Name":{"type":"string"},"Values":{"type":"array","items":{"type":"string"}}},"required":["Name","Values"]}},"Offset":{"type":"integer","minimum":0,"description":"Zero-based pagination offset. Optional."},"Limit":{"type":"integer","minimum":0,"maximum":100,"description":"Page size. Maximum is 100. Optional."}},"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"Offset":0,"Limit":20}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"recorded1":{"summary":"Example response","value":{"TotalCount":0,"TargetGroupSet":[]}}}}}}}}},"/clb/DescribeTargetGroups":{"post":{"operationId":"clb_DescribeTargetGroups","summary":"DescribeTargetGroups","description":"Query the target group information.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeTargetGroups' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"Offset\":0,\"Limit\":20}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeTargetGroups","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":[],"x-cc-notable-params":["Filters","Offset","Limit"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"Filters":{"type":"array","description":"Server-side filters. Unknown filter names are rejected rather than ignored. Optional.","items":{"type":"object","properties":{"Name":{"type":"string"},"Values":{"type":"array","items":{"type":"string"}}},"required":["Name","Values"]}},"Offset":{"type":"integer","minimum":0,"description":"Zero-based pagination offset. Optional."},"Limit":{"type":"integer","minimum":0,"maximum":100,"description":"Page size. Maximum is 100. Optional."}},"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"Offset":0,"Limit":20}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"recorded1":{"summary":"Example response","value":{"Response":{"TotalCount":0,"TargetGroupSet":[],"RequestId":"f9ba3dce-9a75-555c-e940-a23dc23b9734"}}},"recorded2":{"summary":"Example response 2","value":{"Response":{"TotalCount":0,"TargetGroupSet":[],"RequestId":"9b4e13b9-0acd-8b4e-5c10-9264e9a8b161"}}}}}}}}}},"/clb/DescribeTargets":{"post":{"operationId":"clb_DescribeTargets","summary":"DescribeTargets","description":"Query the list of real servers bound to some listeners of a CLB instance.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeTargets' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerId\":\"<LoadBalancerId>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeTargets","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":["LoadBalancerId"],"x-cc-notable-params":["ListenerIds","Protocol","Port"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerId":{"type":"string"},"ListenerIds":{"type":"array","items":{"type":"string"},"description":"Optional."},"Protocol":{"type":"string","description":"Optional."},"Port":{"type":"integer","description":"Optional."}},"required":["LoadBalancerId"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerId":"<LoadBalancerId>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/clb/DescribeTaskStatus":{"post":{"operationId":"clb_DescribeTaskStatus","summary":"DescribeTaskStatus","description":"Query the execution status of an async task. After non-query APIs (used to create/delete CLB instances, listeners, or rules or to bind/unbind real servers) are called successfully, this API needs to be used to query whether the task is successful.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: DescribeTaskStatus' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"DescribeTaskStatus","x-cc-version":"2018-03-17","x-cc-mutating":false,"x-cc-required-params":[],"x-cc-notable-params":["TaskId","DealName"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"TaskId":{"type":"string","description":"Optional."},"DealName":{"type":"string","description":"Optional."}},"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"recorded1":{"summary":"Example response","value":{"Response":{"Status":0,"RequestId":"1c1a1061-d4dc-8656-7245-be6efc033e88"}}}}}}}}}},"/clb/ModifyListener":{"post":{"operationId":"clb_ModifyListener","summary":"ModifyListener","description":"Modify the attributes of a CLB instance listener, including the listener name, health check parameters, certificate information, and forwarding policy. This API does not support classic CLB instances.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: ModifyListener' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerId\":\"<LoadBalancerId>\",\"ListenerId\":\"<ListenerId>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"ModifyListener","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["LoadBalancerId","ListenerId"],"x-cc-notable-params":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerId":{"type":"string"},"ListenerId":{"type":"string"}},"required":["LoadBalancerId","ListenerId"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerId":"<LoadBalancerId>","ListenerId":"<ListenerId>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"error1":{"summary":"Example error response 1","value":{"Response":{"Error":{"Code":"InvalidParameter","Message":"LoadBalancer not exist"},"RequestId":"600e588d-2e69-8f44-e666-14c0a63478f8"}}}}}}}}}},"/clb/RegisterTargets":{"post":{"operationId":"clb_RegisterTargets","summary":"RegisterTargets","description":"Bind one or more backend services to a Cloud Load Balancer listener or layer-7 forwarding rule. Before that, you need to create a related CLB layer-4 listener or layer-7 forwarding rule. For Layer-4 listeners (TCP/UDP), only specify the listener ID. For layer-7 (HTTP/HTTPS) listeners, forwarding rules must be specified through LocationId or Domain+Url.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: RegisterTargets' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerId\":\"<LoadBalancerId>\",\"ListenerId\":\"<ListenerId>\",\"Targets\":\"<Targets>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"RegisterTargets","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["LoadBalancerId","ListenerId","Targets"],"x-cc-notable-params":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerId":{"type":"string"},"ListenerId":{"type":"string"},"Targets":{"type":"string"}},"required":["LoadBalancerId","ListenerId","Targets"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerId":"<LoadBalancerId>","ListenerId":"<ListenerId>","Targets":"<Targets>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"error1":{"summary":"Example error response 1","value":{"Response":{"Error":{"Code":"InvalidParameter","Message":"LoadBalancer not exist"},"RequestId":"66aa8c98-d884-c2fb-551f-851d955dd9fa"}}}}}}}}}},"/clb/ReplaceCert":{"post":{"operationId":"clb_ReplaceCert","summary":"ReplaceCert","description":"Replace a stored certificate with another, re-pointing every listener that references the old certificate at the new one.\nCarries no certificate content. It takes the identifiers of a stored certificate and its replacement, and re-points every listener using the first at the second. Upload the replacement first.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: ReplaceCert' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"OldCertId\":\"<OldCertId>\",\"NewCertId\":\"<NewCertId>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"ReplaceCert","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["OldCertId","NewCertId"],"x-cc-notable-params":["OldCertId","NewCertId"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"OldCertId":{"type":"string"},"NewCertId":{"type":"string"}},"required":["OldCertId","NewCertId"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"OldCertId":"<OldCertId>","NewCertId":"<NewCertId>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}}}}},"/clb/SetLoadBalancerSecurityGroups":{"post":{"operationId":"clb_SetLoadBalancerSecurityGroups","summary":"SetLoadBalancerSecurityGroups","description":"Bind or unbind security groups for a public network load balancer. Use DescribeLoadBalancers to query the groups currently bound. This action follows set semantics.\nReplaces the full security group list for the load balancer.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: SetLoadBalancerSecurityGroups' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"LoadBalancerId\":\"<LoadBalancerId>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"SetLoadBalancerSecurityGroups","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["LoadBalancerId"],"x-cc-notable-params":["SecurityGroups"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"LoadBalancerId":{"type":"string"},"SecurityGroups":{"type":"string","description":"Optional."}},"required":["LoadBalancerId"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"LoadBalancerId":"<LoadBalancerId>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"error1":{"summary":"Example error response 1","value":{"Response":{"Error":{"Code":"InvalidParameter.LBIdNotFound","Message":"LoadBalancerId `lb-00000000` not found."},"RequestId":"91606e5a-28cc-4c10-20aa-b011e072bfe4"}}}}}}}}}},"/clb/UpLoadCert":{"post":{"operationId":"clb_UpLoadCert","summary":"UpLoadCert","description":"Upload a server certificate and its private key to the certificate store, returning the certificate identifier used by HTTPS listeners.\nThe action name contains a capital L and dispatch is case-sensitive. CertType is SVR for a server certificate. CertContent should contain the full chain. Self-signed certificates are rejected with FailedOperation; the store requires a certificate issued by a recognised authority. The response field is CertID while requests take CertId.\n**Wire call.** This path is a documentation convenience. Converge Cloud is RPC-over-HTTP: every action is a single `POST /` to `clb.api3.convergecloud.com` with the action name in the `X-TC-Action` header. The real request is:\n```bash\ncurl -sS https://clb.api3.convergecloud.com/ \\\n  -H 'Authorization: TC3-HMAC-SHA256 Credential=<SecretId>/<YYYY-MM-DD>/clb/tc3_request, SignedHeaders=content-type;host;x-tc-action, Signature=<sig>' \\\n  -H 'Content-Type: application/json; charset=utf-8' \\\n  -H 'Host: clb.api3.convergecloud.com' \\\n  -H 'X-TC-Action: UpLoadCert' \\\n  -H 'X-TC-Version: 2018-03-17' \\\n  -H 'X-TC-Timestamp: <unix-seconds>' \\\n  -H 'X-TC-Region: luzon' \\\n  -d '{\"CertAlias\":\"<CertAlias>\",\"CertType\":\"<CertType>\",\"CertContent\":\"<CertContent>\"}'\n```","tags":["clb"],"deprecated":false,"x-cc-service":"clb","x-cc-action":"UpLoadCert","x-cc-version":"2018-03-17","x-cc-mutating":true,"x-cc-required-params":["CertAlias","CertType","CertContent"],"x-cc-notable-params":["CertAlias","CertType","CertContent","CertKey"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"CertAlias":{"type":"string"},"CertType":{"type":"string"},"CertContent":{"type":"string"},"CertKey":{"type":"string","description":"Optional."}},"required":["CertAlias","CertType","CertContent"],"additionalProperties":true,"description":"The fields listed here are the ones in common use. Additional parameters are also accepted."},"example":{"CertAlias":"<CertAlias>","CertType":"<CertType>","CertContent":"<CertContent>"}}}},"responses":{"200":{"description":"Converge Cloud answers 200 for both success and error. Read `Response.Error` to tell them apart — never the HTTP status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"},"examples":{"error1":{"summary":"Example error response 1","value":{"Response":{"Error":{"Code":"FailedOperation","Message":"Upload certificate failed, please check that the certificate meets the standard."},"RequestId":"99096d86-1094-11df-6d88-770b629870e2"}}},"error2":{"summary":"Example error response 2","value":{"Response":{"RequestId":"1cdb81b2-4638-288c-2fc3-d70e1a48c1f4","Error":{"Code":"InvalidParameter","Message":"[Type 3002] : CertAlias is required; : Additional property Alias is not allowed; "}}}}}}}}}}}},"components":{"securitySchemes":{"TC3":{"type":"apiKey","in":"header","name":"Authorization","description":"TC3-HMAC-SHA256. Credential scope is `<YYYY-MM-DD>/clb/tc3_request`. The signing service name is a separate input from the hostname — deriving it from the host works until it does not, and the failure looks like an auth bug. Timestamps outside a 300-second window are rejected."}},"schemas":{"Envelope":{"type":"object","description":"Every Converge Cloud response is wrapped in `Response`, success or failure.","properties":{"Response":{"type":"object","properties":{"RequestId":{"type":"string","description":"Always present, including on errors. Quote it to Converge support."},"Error":{"$ref":"#/components/schemas/Error"}},"required":["RequestId"],"additionalProperties":true}},"required":["Response"]},"Error":{"type":"object","description":"Present only on failure. Error messages are Chinese on vpc and dc and English elsewhere — parse `Code`, never `Message`.","properties":{"Code":{"type":"string","examples":["InvalidAction","UnauthorizedOperation","AuthFailure.SignatureFailure","ResourceNotFound","InvalidParameterValue.LimitExceeded"]},"Message":{"type":"string"}},"required":["Code","Message"]}}}}