openapi: 3.1.0 info: title: elastic.io Platform REST Agents Subscriptions API description: The elastic.io Platform REST API v2 provides programmatic access to the elastic.io iPaaS platform. It allows you to manage integration flows, workspaces, contracts, credentials, components, recipes, users, and other platform resources. The API follows the JSON:API specification and uses Bearer token authentication. version: 2.0.0 contact: name: elastic.io url: https://www.elastic.io/ license: name: Proprietary url: https://www.elastic.io/ termsOfService: https://www.elastic.io/ servers: - url: https://api.elastic.io/v2 description: elastic.io Platform API v2 security: - bearerAuth: [] tags: - name: Subscriptions description: Manage topic subscriptions paths: /subscriptions: get: operationId: listSubscriptions summary: Elastic.io List subscriptions description: Retrieve a list of topic subscriptions. tags: - Subscriptions parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/WorkspaceFilter' responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/SubscriptionListResponse' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createSubscription summary: Elastic.io Create a subscription description: Create a new topic subscription. tags: - Subscriptions requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SubscriptionCreateRequest' responses: '201': description: Subscription created successfully content: application/json: schema: $ref: '#/components/schemas/SubscriptionResponse' '401': $ref: '#/components/responses/Unauthorized' /subscriptions/{subscription_id}: get: operationId: getSubscription summary: Elastic.io Get a subscription description: Retrieve details of a specific subscription. tags: - Subscriptions parameters: - name: subscription_id in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/SubscriptionResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteSubscription summary: Elastic.io Delete a subscription description: Delete a topic subscription. tags: - Subscriptions parameters: - name: subscription_id in: path required: true schema: type: string responses: '204': description: Subscription deleted successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: schemas: SubscriptionCreateRequest: type: object required: - data properties: data: type: object required: - type - relationships properties: type: type: string enum: - subscription relationships: type: object required: - topic - flow properties: topic: $ref: '#/components/schemas/JsonApiRelationship' flow: $ref: '#/components/schemas/JsonApiRelationship' ErrorResponse: type: object properties: errors: type: array items: type: object properties: status: type: integer title: type: string detail: type: string JsonApiMeta: type: object properties: page: type: integer per_page: type: integer total: type: integer total_pages: type: integer JsonApiLinks: type: object properties: self: type: string format: uri first: type: string format: uri prev: type: string format: uri next: type: string format: uri last: type: string format: uri SubscriptionResponse: type: object properties: data: type: object properties: id: type: string type: type: string enum: - subscription attributes: type: object properties: created_at: type: string format: date-time relationships: type: object properties: topic: $ref: '#/components/schemas/JsonApiRelationship' flow: $ref: '#/components/schemas/JsonApiRelationship' SubscriptionListResponse: type: object properties: data: type: array items: type: object properties: id: type: string type: type: string attributes: type: object relationships: type: object meta: $ref: '#/components/schemas/JsonApiMeta' links: $ref: '#/components/schemas/JsonApiLinks' JsonApiRelationship: type: object properties: data: type: object properties: id: type: string type: type: string parameters: WorkspaceFilter: name: filter[workspace_id] in: query description: Filter by workspace ID schema: type: string PageNumber: name: page[number] in: query description: Page number to retrieve schema: type: integer default: 1 PageSize: name: page[size] in: query description: Number of items per page schema: type: integer default: 20 responses: Unauthorized: description: Authentication required or token is invalid content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: The requested resource was not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: Bearer token authentication. Obtain a token through the elastic.io platform login or API key.