Skip to content

Bind a workload to a managed object storage cluster over a private connector

POST
/api/managed-storage/{id}/bindings
curl --request POST \
--url https://gateway.example.com/api/managed-storage/550e8400-e29b-41d4-a716-446655440000/bindings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "targetNodeId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "targetType": "container", "targetResourceId": "example", "environment": { "endpoint": "example", "accessKeyId": "example", "secretAccessKey": "example", "bucket": "example", "region": "example" }, "targetEnvironment": { "additionalProperty": "example" }, "buckets": [ "example" ] }'

The link is saved into the workload whatever it is doing and the call does not wait for the workload to become healthy. A ready link reports observedState target_applied while the workload has not run it yet (never started, stopped, or its rollout pending or failed) and active once its runtime carries it. A Git-source container whose first build has not created it yet is linked by its name, authorized on its reserved identity, and its first build starts it with the link.

id
required
string
>= 1 characters
Example
550e8400-e29b-41d4-a716-446655440000

JSON request body

Media typeapplication/json
object
targetNodeId
required
string format: uuid
targetType
required
string
Allowed values: container deployment
targetResourceId
required
string
>= 1 characters <= 255 characters
environment
required
object
endpoint
string
<= 128 characters /^[A-Z_][A-Z0-9_]*$/
accessKeyId
string
<= 128 characters /^[A-Z_][A-Z0-9_]*$/
secretAccessKey
string
<= 128 characters /^[A-Z_][A-Z0-9_]*$/
bucket
string
<= 128 characters /^[A-Z_][A-Z0-9_]*$/
region
string
<= 128 characters /^[A-Z_][A-Z0-9_]*$/
targetEnvironment
object
key
additional properties
string
buckets
required
Array<string>
>= 1 items <= 32 items

Created

Media typeapplication/json
object
data
required

Resource object. Exact fields depend on the endpoint.

object
id
string
name
string
key
additional properties
Example
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Example resource",
"createdAt": "2024-01-01T12:00:00.000Z",
"updatedAt": "2024-01-01T12:30:00.000Z"
}
}

Bad request

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"details": [
{
"path": [
"name"
],
"message": "Required"
}
]
}

Authentication required

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "UNAUTHORIZED",
"message": "Authentication required"
}

Forbidden

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "FORBIDDEN",
"message": "Insufficient permissions"
}

Not found

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "NOT_FOUND",
"message": "Resource not found"
}

Conflict

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "CONFLICT",
"message": "Resource already exists"
}

Unprocessable entity

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "UNPROCESSABLE_ENTITY",
"message": "Request could not be processed"
}

Internal server error

Media typeapplication/json
object
code
required

Error code

string
message
required

Human-readable error message

string
details

Additional error details

Example
{
"code": "INTERNAL_ERROR",
"message": "Internal server error"
}