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 audit-logs API version: 1.0.0 security: - bearerAuth: [] - cookieAuth: [] tags: - name: audit-logs paths: /audit-logs: get: description: List audit log events with pagination and filtering operationId: PlatformListAuditLogs parameters: - $ref: '#/components/parameters/platform_per_page' - $ref: '#/components/parameters/platform_page' - name: user_id in: query description: Filter by user ID schema: type: string format: uuid - name: event_type in: query description: Filter by event type schema: type: string - name: entity_display_name in: query description: Filter by entity display name schema: type: string - name: user_ip_address in: query description: Filter by user IP address schema: type: string - name: start_time in: query description: Filter by start time (inclusive) schema: type: string format: date-time - name: end_time in: query description: Filter by end time (inclusive) schema: type: string format: date-time - name: search in: query description: Search across user name, event type, entity display name, and user IP address schema: type: string responses: '200': description: Response content: application/json: schema: required: - items - metadata properties: items: items: $ref: '#/components/schemas/PlatformAuditLogEvent' type: array metadata: $ref: '#/components/schemas/PlatformListMetadata' '401': $ref: '#/components/responses/PlatformRequiresAuthentication' '403': $ref: '#/components/responses/PlatformForbidden' '500': $ref: '#/components/responses/PlatformInternalError' tags: - audit-logs /audit-logs/{id}: get: description: Get a specific audit log event by ID operationId: PlatformGetAuditLog parameters: - name: id in: path required: true schema: type: string format: uuid responses: '200': description: Response content: application/json: schema: $ref: '#/components/schemas/PlatformAuditLogEvent' '401': $ref: '#/components/responses/PlatformRequiresAuthentication' '403': $ref: '#/components/responses/PlatformForbidden' '404': $ref: '#/components/responses/PlatformNotFound' '500': $ref: '#/components/responses/PlatformInternalError' tags: - audit-logs 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 PlatformRole: type: object description: Role required: - id - name - description - permissions - created_by - created_at - updated_at - type properties: id: description: The unique ID for the role. type: string format: uuid x-go-name: ID name: type: string description: type: string permissions: type: array items: $ref: '#/components/schemas/PlatformRBACPermission' created_by: $ref: '#/components/schemas/PlatformCreatedBy' created_at: example: '2017-07-14T16:53:42Z' format: date-time type: string updated_at: example: '2017-07-14T16:53:42Z' format: date-time type: string type: $ref: '#/components/schemas/PlatformRoleType' PlatformRBACPermissionID: description: The unique ID for the data permission. type: string format: uuid x-go-name: RBACPermissionID PlatformAuditLogEvent: type: object required: - id - user - event_type - created_at - user_ip_address properties: id: type: string format: uuid description: The unique identifier of the audit log event user: $ref: '#/components/schemas/PlatformUser' description: The user who performed the action user_ip_address: type: string description: The IP address of the user who performed the action event_type: type: string description: The type of event that was logged entity_display_name: type: string description: The display name of the entity that was affected nullable: true event_details: type: object description: Additional details about the event additionalProperties: true is_success: type: boolean description: Whether the event was successful created_at: type: string format: date-time description: The timestamp when the event was created PlatformUser: additionalProperties: false description: User properties: created_at: example: '2017-07-14T16:53:42Z' format: date-time type: string id: description: ID of the User type: string format: uuid example: 12345678-1234-1234-1234-1234567890ab x-go-name: ID email: type: string example: user@example.com name: $ref: '#/components/schemas/PlatformUserName' updated_at: example: '2017-07-14T16:53:42Z' type: string format: date-time profile_image_url: type: string description: Profile image URL of user x-go-name: ProfileImageURL last_login_at: type: string format: date-time provider: $ref: '#/components/schemas/PlatformUserProvider' tracking_opted_in: type: boolean description: Whether anonymous user tracking was opted into mfa_configured: type: boolean description: Whether the user has MFA configured x-go-name: MFAConfigured roles: type: array items: $ref: '#/components/schemas/PlatformRole' enabled: type: boolean description: Whether the user is enabled required: - id - email - enabled - provider - mfa_configured - roles title: User type: object 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 PlatformRBACPermission: type: object required: - id - name - description - query - created_by - created_at - updated_at - number_of_affected_roles - number_of_affected_users properties: id: $ref: '#/components/schemas/PlatformRBACPermissionID' name: type: string description: type: string query: type: string created_by: $ref: '#/components/schemas/PlatformCreatedBy' created_at: example: '2017-07-14T16:53:42Z' format: date-time type: string updated_at: example: '2017-07-14T16:53:42Z' format: date-time type: string number_of_affected_roles: type: integer number_of_affected_users: type: integer PlatformRoleType: type: string enum: - admin:write - admin:read - general:read - general:write - ci - schema-only - custom x-enum-varnames: - AdminWrite - AdminRead - GeneralRead - GeneralWrite - CI - SchemaOnly - Custom PlatformUserProvider: title: LocalUserProvider type: string enum: - local - saml default: local 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: 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 PlatformRequiresAuthentication: content: application/json: schema: $ref: '#/components/schemas/PlatformBasicError' description: Requires authentication parameters: 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_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 securitySchemes: bearerAuth: scheme: bearer type: http basicAuth: scheme: basic type: http cookieAuth: scheme: cookie type: http