openapi: 3.0.1 info: title: Control API v1 apps namespaces API version: 1.0.32 description: 'Use the Control API to manage your applications, namespaces, keys, queues, rules, and more. Detailed information on using this API can be found in the Ably Control API docs. Control API is currently in Preview. ' servers: - url: https://control.ably.net/v1 tags: - name: namespaces paths: /apps/{app_id}/namespaces: get: summary: Lists namespaces description: List the namespaces for the specified application ID. tags: - namespaces parameters: - name: app_id description: The application ID. in: path required: true schema: type: string security: - bearer_auth: [] responses: '200': description: Namespace list content: application/json: schema: type: array items: $ref: '#/components/schemas/namespace_response' '401': description: Authentication failed content: application/json: schema: $ref: '#/components/schemas/error' '404': description: App not found content: application/json: schema: $ref: '#/components/schemas/error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error' '504': description: Gateway timeout content: application/json: schema: $ref: '#/components/schemas/error' post: summary: Creates a namespace description: Creates a namespace for the specified application ID. tags: - namespaces parameters: - name: app_id description: The application ID. in: path required: true schema: type: string security: - bearer_auth: [] responses: '201': description: Namespace created content: application/json: schema: $ref: '#/components/schemas/namespace_response' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/error' '401': description: Authentication failed content: application/json: schema: $ref: '#/components/schemas/error' '404': description: App not found content: application/json: schema: $ref: '#/components/schemas/error' '422': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error' requestBody: content: application/json: schema: $ref: '#/components/schemas/namespace_post' /apps/{app_id}/namespaces/{namespace_id}: patch: summary: Updates a namespace description: Updates the namespace with the specified ID, for the application with the specified application ID. tags: - namespaces parameters: - name: app_id description: The application ID. in: path required: true schema: type: string - name: namespace_id description: The namespace ID. in: path required: true schema: type: string security: - bearer_auth: [] responses: '200': description: Namespace updated content: application/json: schema: $ref: '#/components/schemas/namespace_response' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/error' '401': description: Authentication failed content: application/json: schema: $ref: '#/components/schemas/error' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error' '504': description: Gateway timeout content: application/json: schema: $ref: '#/components/schemas/error' requestBody: content: application/json: schema: $ref: '#/components/schemas/namespace_patch' delete: summary: Deletes a namespace description: Deletes the namespace with the specified ID, for the specified application ID. tags: - namespaces parameters: - name: app_id description: The application ID. in: path required: true schema: type: string - name: namespace_id description: The namespace ID. in: path required: true schema: type: string security: - bearer_auth: [] responses: '204': description: Namespace deleted content: {} '401': description: Authentication failed content: application/json: schema: $ref: '#/components/schemas/error' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/error' '504': description: Gateway timeout content: application/json: schema: $ref: '#/components/schemas/error' components: schemas: namespace_response: type: object additionalProperties: false properties: authenticated: type: boolean default: false description: If `true`, clients will not be permitted to use (including to attach, publish, or subscribe) any channels within this namespace unless they are identified, that is, authenticated using a client ID. See the documentation for identified clients for more details. example: false created: type: integer description: Unix timestamp representing the date and time of creation of the namespace. example: 1602844091815 modified: type: integer description: Unix timestamp representing the date and time of last modification of the namespace. example: 1614679682091 id: type: string description: The namespace or channel name that the channel rule will apply to. For example, if you specify `namespace` the namespace will be set to `namespace` and will match with channels `namespace:*` and `namespace`. example: namespace persisted: type: boolean default: false description: If `true`, all messages on a channel will be stored for 24 hours. You can access stored messages via the History API. Please note that for each message stored, an additional message is deducted from your monthly allocation. example: false persistLast: type: boolean default: false description: If `true`, the last message published on a channel will be stored for 365 days. You can access the stored message only by using the channel rewind mechanism and attaching with rewind=1. Please note that for each message stored, an additional message is deducted from your monthly allocation. example: false pushEnabled: type: boolean default: false description: If `true`, publishing messages with a push payload in the extras field is permitted and can trigger the delivery of a native push notification to registered devices for the channel. example: false batchingEnabled: type: boolean default: false description: If `true`, channels within this namespace will start batching inbound messages instead of sending them out immediately to subscribers. example: false batchingPolicy: type: string default: simple description: If `true`, groups multiple incoming messages into a single batch. example: simple batchingInterval: type: integer default: 20 description: If `true`, the batching interval, configurable from 20ms to 1s, temporarily holds and aggregates incoming messages. These messages are then combined and delivered as a single batch once the interval elapses or a size limit is reached (before the interval elapses). example: 20 tlsOnly: type: boolean default: false description: If `true`, only clients that are connected using TLS will be permitted to subscribe to any channels within this namespace. example: false exposeTimeserial: type: boolean description: If `true`, messages received on a channel will contain a unique `timeserial` that can be referenced by later messages for use with message interactions. namespace_post: type: object additionalProperties: false properties: id: type: string description: The namespace or channel name that the channel rule will apply to. For example, if you specify `namespace` the namespace will be set to `namespace` and will match with channels `namespace:*` and `namespace`. example: namespace authenticated: type: boolean default: false description: If `true`, clients will not be permitted to use (including to attach, publish, or subscribe) any channels within this namespace unless they are identified, that is, authenticated using a client ID. See the documentation for identified clients for more details. example: false persisted: type: boolean default: false description: If `true`, all messages on a channel will be stored for 24 hours. You can access stored messages via the History API. Please note that for each message stored, an additional message is deducted from your monthly allocation. example: false persistLast: type: boolean default: false description: If `true`, the last message published on a channel will be stored for 365 days. You can access the stored message only by using the channel rewind mechanism and attaching with rewind=1. Please note that for each message stored, an additional message is deducted from your monthly allocation. example: false pushEnabled: type: boolean default: false description: If `true`, publishing messages with a push payload in the extras field is permitted and can trigger the delivery of a native push notification to registered devices for the channel. example: false batchingEnabled: type: boolean default: false description: If `true`, channels within this namespace will start batching inbound messages instead of sending them out immediately to subscribers. example: false batchingPolicy: type: string default: simple description: If `true`, groups multiple incoming messages into a single batch. example: simple batchingInterval: type: integer default: 20 description: If `true`, the batching interval, configurable from 20ms to 1s, temporarily holds and aggregates incoming messages. These messages are then combined and delivered as a single batch once the interval elapses or a size limit is reached (before the interval elapses). example: 20 tlsOnly: type: boolean default: false description: If `true`, only clients that are connected using TLS will be permitted to subscribe to any channels within this namespace. example: false exposeTimeserial: type: boolean default: false description: If `true`, messages received on a channel will contain a unique `timeserial` that can be referenced by later messages for use with message interactions. required: - id namespace_patch: type: object additionalProperties: false properties: authenticated: type: boolean default: false description: If `true`, clients will not be permitted to use (including to attach, publish, or subscribe) any channels within this namespace unless they are identified, that is, authenticated using a client ID. See the documentation for identified clients for more details. example: false persisted: type: boolean default: false description: If `true`, all messages on a channel will be stored for 24 hours. You can access stored messages via the History API. Please note that for each message stored, an additional message is deducted from your monthly allocation. example: false persistLast: type: boolean default: false description: If `true`, the last message published on a channel will be stored for 365 days. You can access the stored message only by using the channel rewind mechanism and attaching with rewind=1. Please note that for each message stored, an additional message is deducted from your monthly allocation. example: false pushEnabled: type: boolean default: false description: If `true`, publishing messages with a push payload in the extras field is permitted and can trigger the delivery of a native push notification to registered devices for the channel. example: false batchingEnabled: type: boolean default: false description: If `true`, channels within this namespace will start batching inbound messages instead of sending them out immediately to subscribers. batchingPolicy: type: string default: simple description: If `true`, groups multiple incoming messages into a single batch. example: simple batchingInterval: type: integer default: 20 description: If `true`, the batching interval, configurable from 20ms to 1s, temporarily holds and aggregates incoming messages. These messages are then combined and delivered as a single batch once the interval elapses or a size limit is reached (before the interval elapses). example: 20 tlsOnly: type: boolean default: false description: If `true`, only clients that are connected using TLS will be permitted to subscribe to any channels within this namespace. example: false exposeTimeserial: type: boolean description: If `true`, messages received on a channel will contain a unique `timeserial` that can be referenced by later messages for use with message interactions. error: type: object additionalProperties: false properties: message: type: string description: The error message. code: type: integer description: The HTTP status code returned. statusCode: type: integer description: The Ably error code. href: type: string description: The URL to documentation about the error code. details: type: object nullable: true description: Any additional details about the error message. required: - message - code - statusCode - href securitySchemes: bearer_auth: type: http scheme: bearer description: Control API uses bearer authentication. You need to generate an access token for use with this API. More details can be found in the Ably docs.