openapi: 3.1.0 info: contact: email: support@cloudquery.io name: CloudQuery Support Team url: https://cloudquery.io description: 'Welcome to the CloudQuery Platform API documentation! This API can be used to interact with the CloudQuery platform. As a user, the API allows you to search the CloudQuery asset inventory, run SQL queries against the data warehouse, save and load searches, and much more. As an administrator, it allows you to manage your teams, syncs, and other objects. ### Authentication The API is secured using bearer tokens. To get started, you can generate an API key for your Platform deployment from your platform dashboard. For a step-by-step guide, see: https://www.cloudquery.io/docs/cli/managing-cloudquery/deployments/generate-api-key. The base URL for the API depends on where your CloudQuery Platform is hosted. If running locally, this is usually http://localhost:3000/api. In a production deployment it should be an HTTPS URL. For purposes of illustration, we will assume the platform instance is available at https://cloudquery.mycompany.com. In this case, the base API endpoint will be https://cloudquery.mycompany.com/api. ### Example Request To test your connection to the API, we can use the `/plugins` endpoint. For example: `curl -v -H "Authorization: Bearer $CLOUDQUERY_API_KEY" \ https://cloudquery.mycompany.com/api/plugins` ' license: name: MIT url: https://spdx.org/licenses/MIT termsOfService: https://www.cloudquery.io/terms title: CloudQuery Platform OpenAPI Spec admin custom-columns API version: 1.0.0 security: - bearerAuth: [] - cookieAuth: [] tags: - name: custom-columns paths: /custom-columns: get: description: List all custom columns operationId: PlatformListAllCustomColumns parameters: - $ref: '#/components/parameters/platform_per_page' - $ref: '#/components/parameters/platform_page' - $ref: '#/components/parameters/platform_custom_columns_sort_bys' - $ref: '#/components/parameters/platform_custom_columns_sort_dirs' - name: search_term in: query schema: type: string description: Filter columns by name, label, or description. responses: '200': description: Response content: application/json: schema: required: - items - metadata properties: items: items: $ref: '#/components/schemas/PlatformCustomColumn' type: array metadata: $ref: '#/components/schemas/PlatformListMetadata' '400': $ref: '#/components/responses/PlatformBadRequest' '401': $ref: '#/components/responses/PlatformRequiresAuthentication' '403': $ref: '#/components/responses/PlatformForbidden' '404': $ref: '#/components/responses/PlatformNotFound' '422': $ref: '#/components/responses/PlatformUnprocessableEntity' '500': $ref: '#/components/responses/PlatformInternalError' tags: - custom-columns post: description: Save a custom column operationId: PlatformSaveCustomColumn requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PlatformCustomColumnCreateOrUpdate' responses: '201': description: Success content: application/json: schema: $ref: '#/components/schemas/PlatformCustomColumn' '400': $ref: '#/components/responses/PlatformBadRequest' '401': $ref: '#/components/responses/PlatformRequiresAuthentication' '403': $ref: '#/components/responses/PlatformForbidden' '404': $ref: '#/components/responses/PlatformNotFound' '422': $ref: '#/components/responses/PlatformUnprocessableEntity' '500': $ref: '#/components/responses/PlatformInternalError' tags: - custom-columns /custom-columns/{custom_column_id}: get: description: Get a custom column operationId: PlatformGetCustomColumn parameters: - $ref: '#/components/parameters/platform_custom_column_id' responses: '200': description: Response content: application/json: schema: $ref: '#/components/schemas/PlatformCustomColumn' '401': $ref: '#/components/responses/PlatformRequiresAuthentication' '403': $ref: '#/components/responses/PlatformForbidden' '404': $ref: '#/components/responses/PlatformNotFound' '422': $ref: '#/components/responses/PlatformUnprocessableEntity' '500': $ref: '#/components/responses/PlatformInternalError' tags: - custom-columns patch: description: Update a custom column operationId: PlatformUpdateCustomColumn parameters: - $ref: '#/components/parameters/platform_custom_column_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/PlatformCustomColumnCreateOrUpdate' responses: '200': description: Response content: application/json: schema: $ref: '#/components/schemas/PlatformCustomColumn' '400': $ref: '#/components/responses/PlatformBadRequest' '401': $ref: '#/components/responses/PlatformRequiresAuthentication' '403': $ref: '#/components/responses/PlatformForbidden' '404': $ref: '#/components/responses/PlatformNotFound' '422': $ref: '#/components/responses/PlatformUnprocessableEntity' '500': $ref: '#/components/responses/PlatformInternalError' tags: - custom-columns delete: description: Delete a custom column operationId: PlatformDeleteCustomColumn parameters: - $ref: '#/components/parameters/platform_custom_column_id' responses: '204': description: Success '401': $ref: '#/components/responses/PlatformRequiresAuthentication' '403': $ref: '#/components/responses/PlatformForbidden' '404': $ref: '#/components/responses/PlatformNotFound' '422': $ref: '#/components/responses/PlatformUnprocessableEntity' '500': $ref: '#/components/responses/PlatformInternalError' tags: - custom-columns components: schemas: PlatformListMetadata: required: - page_size properties: total_count: type: integer last_page: type: integer page_size: type: integer time_ms: type: integer PlatformFieldError: allOf: - $ref: '#/components/schemas/PlatformBasicError' - properties: errors: items: type: string type: array field_errors: additionalProperties: type: string type: object type: object PlatformCustomColumnColumnName: type: string description: The name for the custom column. pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ example: tags_v1_region x-pattern-message: Letters, numbers, and underscores only. Must start with a letter. minLength: 1 maxLength: 63 PlatformCustomColumn: title: Custom Column type: object description: A custom column that is configured manually by the user. additionalProperties: false required: - id - column_name - label - value_expr - created_by - created_at properties: id: $ref: '#/components/schemas/PlatformCustomColumnID' description: type: string column_name: $ref: '#/components/schemas/PlatformCustomColumnColumnName' label: type: string example: Environment name value_expr: $ref: '#/components/schemas/PlatformCustomColumnValueExpr' created_by: $ref: '#/components/schemas/PlatformCreatedBy' created_at: example: '2017-07-14T16:53:42Z' format: date-time type: string PlatformCustomColumnSortDirection: title: CustomColumnSortDirection type: string enum: - asc - desc default: asc PlatformUserName: description: The unique name for the user. minLength: 1 maxLength: 255 pattern: ^[a-zA-Z\p{L}][a-zA-Z\p{L} \-']*$ x-pattern-message: can contain only letters, spaces, hyphens, and apostrophes, starting with a letter type: string example: Sarah O'Connor PlatformCustomColumnCreateOrUpdate: title: Custom Column Create or Update type: object description: Create or update a custom column additionalProperties: false required: - column_name - label - value_expr properties: description: type: string column_name: $ref: '#/components/schemas/PlatformCustomColumnColumnName' label: type: string example: Environment name value_expr: $ref: '#/components/schemas/PlatformCustomColumnValueExpr' PlatformCustomColumnSortBy: title: CustomColumnSortBy type: string enum: - id - description - column_name - label - value_expr - created_by - created_at - updated_at PlatformCustomColumnID: description: The unique ID for the custom column. type: string format: uuid x-go-name: CustomColumnID PlatformCustomColumnValueExpr: type: string description: The SQL expression for the custom column. PlatformBasicError: additionalProperties: false description: Basic Error required: - message - status properties: message: type: string status: type: integer title: Basic Error type: object PlatformUserID: description: ID of the User type: string format: uuid example: 12345678-1234-1234-1234-1234567890ab x-go-name: UserID PlatformCreatedBy: type: object required: - id - name - email properties: id: $ref: '#/components/schemas/PlatformUserID' name: $ref: '#/components/schemas/PlatformUserName' email: type: string responses: PlatformBadRequest: content: application/json: schema: $ref: '#/components/schemas/PlatformFieldError' description: Bad request PlatformInternalError: content: application/json: schema: $ref: '#/components/schemas/PlatformBasicError' description: Internal Error PlatformNotFound: content: application/json: schema: $ref: '#/components/schemas/PlatformBasicError' description: Resource not found PlatformForbidden: content: application/json: schema: $ref: '#/components/schemas/PlatformFieldError' description: Forbidden PlatformUnprocessableEntity: content: application/json: schema: $ref: '#/components/schemas/PlatformFieldError' description: UnprocessableEntity PlatformRequiresAuthentication: content: application/json: schema: $ref: '#/components/schemas/PlatformBasicError' description: Requires authentication parameters: platform_custom_column_id: in: path name: custom_column_id required: true schema: $ref: '#/components/schemas/PlatformCustomColumnID' x-go-name: CustomColumnID platform_page: description: Page number of the results to fetch in: query name: page required: false schema: default: 1 minimum: 1 type: integer format: int64 platform_custom_columns_sort_dirs: name: sort_dir in: query description: Custom column sort direction options allowEmptyValue: true explode: true schema: type: array items: $ref: '#/components/schemas/PlatformCustomColumnSortDirection' x-go-type-skip-optional-pointer: true x-go-name: CustomColumnSortDirections platform_per_page: description: The number of results per page (max 1000). in: query name: per_page required: false schema: default: 100 maximum: 1000 minimum: 1 type: integer format: int64 platform_custom_columns_sort_bys: name: sort_by in: query description: Sort by options allowEmptyValue: true explode: true schema: type: array items: $ref: '#/components/schemas/PlatformCustomColumnSortBy' x-go-type-skip-optional-pointer: true x-go-name: CustomColumnSortBys securitySchemes: bearerAuth: scheme: bearer type: http basicAuth: scheme: basic type: http cookieAuth: scheme: cookie type: http