openapi: 3.2.0 info: description: 'The Config API provides standard HTTP/JSON REST endpoints for creating, reading, updating, deleting, and listing configurable Chronosphere resources. Use this link to download the raw Swagger specification: /api/v1/config/swagger.json' title: Config V1 Cloud Integration API version: v1 servers: - url: https://{tenant}.chronosphere.io variables: tenant: default: tenant description: tenant ID assigned by the service provider security: - ApiKeyAuth: [] tags: - name: Cloud Integration paths: /api/v1/config/cloud-integrations: get: operationId: ListCloudIntegrations parameters: - description: 'Sets the preferred number of items to return per page. If set to `0`, the server will use its default value. Regardless of the value specified, clients must never assume how many items will be returned.' in: query name: page.max_size schema: format: int64 type: integer - description: 'An opaque page token that identifies which page the client should request. An empty value indicates the first page.' in: query name: page.token schema: type: string - description: Filters results by slug, where any CloudIntegration with a matching slug in the given list (and matches all other filters) will be returned. in: query name: slugs schema: items: type: string type: array - description: Filters results by name, where any CloudIntegration with a matching name in the given list (and matches all other filters) will be returned. in: query name: names schema: items: type: string type: array - description: "Filter by integration state.\n\n - STATE_ENABLED: Integration is fully enabled and actively collecting metrics.\n - STATE_DISABLED: Integration is disabled and not collecting metrics.\n - STATE_PREVIEW: Integration is in preview mode for estimating cardinality/license\nimpact before full enablement." in: query name: states schema: items: enum: - STATE_ENABLED - STATE_DISABLED - STATE_PREVIEW type: string type: array - description: Filter by provider type. in: query name: provider_types schema: items: type: string type: array responses: '200': content: application/json: schema: $ref: '#/components/schemas/configv1ListCloudIntegrationsResponse' description: A successful response. '500': content: application/json: schema: $ref: '#/components/schemas/apiError' description: An unexpected error response. default: content: application/json: schema: $ref: '#/components/schemas/genericError' description: An undefined error response. tags: - Cloud Integration summary: List cloud integrations x-summary-source: derived post: operationId: CreateCloudIntegration requestBody: content: application/json: schema: $ref: '#/components/schemas/configv1CreateCloudIntegrationRequest' required: true x-originalParamName: body responses: '200': content: application/json: schema: $ref: '#/components/schemas/configv1CreateCloudIntegrationResponse' description: A successful response containing the created CloudIntegration. '400': content: application/json: schema: $ref: '#/components/schemas/apiError' description: Cannot create the CloudIntegration because the request is invalid. '409': content: application/json: schema: $ref: '#/components/schemas/apiError' description: Cannot create the CloudIntegration because there is a conflict with an existing CloudIntegration. '500': content: application/json: schema: $ref: '#/components/schemas/apiError' description: An unexpected error response. default: content: application/json: schema: $ref: '#/components/schemas/genericError' description: An undefined error response. tags: - Cloud Integration summary: Create cloud integration x-summary-source: derived /api/v1/config/cloud-integrations/{slug}: delete: operationId: DeleteCloudIntegration parameters: - in: path name: slug required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/configv1DeleteCloudIntegrationResponse' description: A successful response. '400': content: application/json: schema: $ref: '#/components/schemas/apiError' description: Cannot delete the CloudIntegration because it is in use. '404': content: application/json: schema: $ref: '#/components/schemas/apiError' description: Cannot delete the CloudIntegration because the slug does not exist. '500': content: application/json: schema: $ref: '#/components/schemas/apiError' description: An unexpected error response. default: content: application/json: schema: $ref: '#/components/schemas/genericError' description: An undefined error response. tags: - Cloud Integration summary: Delete cloud integration x-summary-source: derived get: operationId: ReadCloudIntegration parameters: - in: path name: slug required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/configv1ReadCloudIntegrationResponse' description: A successful response. '404': content: application/json: schema: $ref: '#/components/schemas/apiError' description: Cannot read the CloudIntegration because the slug does not exist. '500': content: application/json: schema: $ref: '#/components/schemas/apiError' description: An unexpected error response. default: content: application/json: schema: $ref: '#/components/schemas/genericError' description: An undefined error response. tags: - Cloud Integration summary: Read cloud integration x-summary-source: derived put: operationId: UpdateCloudIntegration parameters: - in: path name: slug required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ConfigV1UpdateCloudIntegrationBody' required: true x-originalParamName: body responses: '200': content: application/json: schema: $ref: '#/components/schemas/configv1UpdateCloudIntegrationResponse' description: A successful response containing the updated CloudIntegration. '400': content: application/json: schema: $ref: '#/components/schemas/apiError' description: Cannot update the CloudIntegration because the request is invalid. '404': content: application/json: schema: $ref: '#/components/schemas/apiError' description: Cannot update the CloudIntegration because the slug does not exist. '409': content: application/json: schema: $ref: '#/components/schemas/apiError' description: Cannot update the CloudIntegration because there is a conflict with an existing CloudIntegration. '500': content: application/json: schema: $ref: '#/components/schemas/apiError' description: An unexpected error response. default: content: application/json: schema: $ref: '#/components/schemas/genericError' description: An undefined error response. tags: - Cloud Integration summary: Update cloud integration x-summary-source: derived components: schemas: configv1CreateCloudIntegrationRequest: properties: cloud_integration: allOf: - $ref: '#/components/schemas/configv1CloudIntegration' description: The CloudIntegration to create. dry_run: description: If `true`, validates the specified configuration without creating the CloudIntegration. If the specified configuration is valid, the endpoint returns a partial response without the CloudIntegration. If the specified configuration is invalid, the endpoint returns an error. type: boolean type: object configv1CloudIntegrationState: description: "State represents the operational state of a CloudIntegration.\n\n - STATE_ENABLED: Integration is fully enabled and actively collecting metrics.\n - STATE_DISABLED: Integration is disabled and not collecting metrics.\n - STATE_PREVIEW: Integration is in preview mode for estimating cardinality/license\nimpact before full enablement." enum: - STATE_ENABLED - STATE_DISABLED - STATE_PREVIEW type: string configv1PageResult: properties: next_token: description: 'An opaque page token that identifies the next page of items that the client should request. An empty value indicates that there are no more items to return.' type: string type: object configv1UpdateCloudIntegrationResponse: properties: cloud_integration: $ref: '#/components/schemas/configv1CloudIntegration' type: object configv1ListCloudIntegrationsResponse: properties: cloud_integrations: items: $ref: '#/components/schemas/configv1CloudIntegration' type: array page: $ref: '#/components/schemas/configv1PageResult' type: object apiError: properties: message: description: An error message describing what went wrong. type: string type: object ConfigV1UpdateCloudIntegrationBody: properties: cloud_integration: allOf: - $ref: '#/components/schemas/configv1CloudIntegration' description: The CloudIntegration to update. create_if_missing: description: If `true`, the CloudIntegration will be created if it does not already exist, identified by `slug`. If `false`, an error will be returned if the CloudIntegration does not already exist. type: boolean dry_run: description: If `true`, validates the specified configuration without creating or updating the CloudIntegration. If the specified configuration is valid, the endpoint returns a partial response without the CloudIntegration. If the specified configuration is invalid, the endpoint returns an error. type: boolean type: object configv1DeleteCloudIntegrationResponse: type: object configv1CreateCloudIntegrationResponse: properties: cloud_integration: $ref: '#/components/schemas/configv1CloudIntegration' type: object configv1ReadCloudIntegrationResponse: properties: cloud_integration: $ref: '#/components/schemas/configv1CloudIntegration' type: object genericError: additionalProperties: true type: object configv1CloudIntegration: description: 'CloudIntegration represents a configuration for collecting metrics from a cloud provider. Each integration contains provider-specific configuration.' properties: created_at: description: Timestamp of when the CloudIntegration was created. Cannot be set by clients. format: date-time readOnly: true type: string external_connection_slug: description: 'Slug of the ExternalConnection used for credentials. Optional depending on the provider.' type: string metric_labels: additionalProperties: type: string description: Labels applied to all metrics emitted from this integration. type: object name: description: The name of the CloudIntegration. You can modify this value after the CloudIntegration is created. type: string provider_config: description: Provider-specific configuration. Structure depends on provider_type. type: object provider_type: description: Required on create/update. Identifies the cloud provider. type: string slug: description: The unique identifier of the CloudIntegration. If a `slug` isn't provided, one is generated based on the `name` field. You can't modify this field after the CloudIntegration is created. type: string state: allOf: - $ref: '#/components/schemas/configv1CloudIntegrationState' description: Operational state of the integration. updated_at: description: Timestamp of when the CloudIntegration was last updated. Cannot be set by clients. format: date-time readOnly: true type: string required: - name type: object securitySchemes: ApiKeyAuth: description: Chronosphere API token in: header name: API-Token type: apiKey