openapi: 3.0.2
info:
  title: Couchbase Capella Analytics Management API
  version: '4.0'
  description: |
    The Couchbase Capella Analytics Management API provides a set of endpoints for creating and managing Capella Analytics clusters.
    Users are able to perform operations such as creating Capella Analytics clusters and managing their configurations.
    This API documentation specifies the endpoints, request and response formats, and authentication requirements
    for seamless integration with Couchbase Capella.

    To access the Management API, you need an API key.
    To create an initial bootstrap API key you must use the Capella UI.
    Once you have created an initial bootstrap API key, you can use the Management API to create further API keys.
    To learn more, see [Get Started with the Capella Analytics Management API](https://docs.couchbase.com/analytics/management-api-guide/management-api-start.html).

    For a history of updates to the Management API, see [Capella Analytics Management API Change Log](https://docs.couchbase.com/analytics/management-api-guide/management-api-log.html).

    **API Base URL:**

    `https://cloudapi.cloud.couchbase.com`

    [Back to Capella Analytics Management API Documentation](https://docs.couchbase.com/analytics/management-api-guide/management-api-intro.html)
servers:
  - url: https://cloudapi.cloud.couchbase.com
security:
  - token: []
tags:
  - name: Allowed CIDRs (Analytics Cluster)
    description: |
      Columnar analytics clusters only allow connections from trusted IP addresses.
      Each analytics cluster has a configurable Allowed IP list that can include up to 75 entries.
      Each entry can be a single IP address or an IP address space.
      Any IP address you add to this list can have a user-specified expiration time for temporary access, or be permanent.
      Capella automatically denies any connection attempts to and from an IP not in the allowed IP list.
  - name: Api Keys
    description: Couchbase Capella Management API uses a Bearer token mechanism for authentication; each call to the Management API has to be authenticated by API key.
  - name: Columnar Analytics Cloud Snapshot Backups & Restore
    description: |
      Couchbase provides a comprehensive backup solution, supporting both scheduled and on-demand backups to ensure robust
      disaster recovery for production data. In Couchbase Capella, you can perform scheduled and on-demand backups of
      columnar cloud snapshot data. On-demand backups are always full backups and start immediately upon request,
      ensuring you can capture the current state of your data whenever needed.
  - name: Columnar Analytics Cloud Snapshot Backups Schedule
    description: |
      Couchbase provides automatic backup scheduling as part of its disaster recovery strategy at the cluster level.
      In Couchbase Capella, once a backup schedule is set, the system automatically backs up the entire cluster based on
      the defined schedule, ensuring that all data within the cluster is protected according to your retention policies.
  - name: Columnar Analytics Clusters
    description: |
      The Columnar Analytics Clusters endpoint allows users to manage their Capella Columnar analytics clusters.
      Capella Columnar is an analytical database (RT-OLAP) for bringing data together for real time apps and operational intelligence.
      Using this endpoint, users can create new clusters, get details of a specific cluster or a listing of clusters, scale up or down existing clusters, and delete clusters.
  - name: Columnar Analytics On/Off Schedule
    description: |
      The Columnar Analytics On/Off Schedule endpoint enables you to schedule when your Columnar analytics cluster should turn on or off to save costs.
      Turning off the cluster only turns off the compute;
      all of your data, indexes, and cluster configuration remain, including users and allow lists.
      When you turn your Columnar analytics cluster off, you will be charged the OFF amount for the cluster.
  - name: Columnar Analytics Private Endpoint Service
    description: |
      Access your Analytics cluster from your cloud provider's private network.
      Supporting infrastructure is deployed and it may take a few minutes for private endpoints to be available. 
      After it's enabled, you can create private endpoint in your network. You can do this using the cloud provider's CLI. 
      For an example, use the POST privateEndpointService/endpointCommand endpoint to get the command.
  - name: Organizations
    description: |
      Couchbase Capella uses an ordered hierarchy to help you keep all of your data organized and securely accessible.
      The entity at the top of the hierarchy is called an organization.
      Everything you do in Capella, whether it's creating a cluster or managing billing, happens within the scope of an organization.
  - name: Projects
    description: |
      Projects contain and allow access to Couchbase databases.
      Projects are used to organize and manage groups of Couchbase databases within organizations.
      An organization can contain any number of projects, and a project can contain any number of databases.
  - name: Users
    description: |
      To access an organization, your Couchbase Capella user account must be added to it.
      Accounts are added to an organization using email invitations sent from Capella by a user with the Organization Owner organization role.
      All organization users are given one or more organization roles that define what they can view and manage in their organization.
paths:
  /v4/organizations/{organizationId}/cloudAccounts:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
  /v4/organizations/{organizationId}/apikeys:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    post:
      summary: Create API Key
      description: |
        Creates a new API key under an organization.

        Organization Owners can create Organization and Project scoped API keys.

        Project Owner and Project Creator can create project scoped keys.

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Api Keys
      operationId: postOrganizationAPIKeys
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAPIKeyRequest'
            examples:
              createOrganizationOwnerAPIKey:
                value:
                  name: Organization Owner API Key
                  description: Creates an API key with a Organization Owner role.
                  expiry: 720
                  allowedCIDRs:
                    - 8.8.8.8/32
                  organizationRoles:
                    - organizationOwner
                  resources: []
              createProjectOwnerAPIKey:
                value:
                  name: Project Owner API Key
                  description: Creates an API key with a Project Owner role.
                  expiry: 720
                  allowedCIDRs:
                    - 8.8.8.8/32
                  organizationRoles:
                    - organizationMember
                  resources:
                    - id: ffffffff-aaaa-1414-eeee-000000000000
                      roles:
                        - projectOwner
      responses:
        '201':
          description: Successfully created an API key under an organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAPIKeyResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: List API keys
      description: |
        Lists all the API keys under an organization.

        Organization Owners can list all the API keys inside the Organization.

        Organization Members and Project Creators can list all the Project scoped API key for which they are Project Owner.

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Api Keys
      operationId: listOrganizationAPIKeys
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/APIKeysSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed all the apikeys under an organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAPIKeys'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/apikeys/{ApiKeyId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/AccessKey'
    get:
      summary: Get API Key
      description: |
        Fetches the details of the given API key under an organization.

        Organization Owners can get any API key inside the Organization.

        Organization Members and Project Creator can get any Project scoped API key for which they are Project Owner.

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Api Keys
      operationId: getOrganizationAPIKeyByAccessKey
      responses:
        '200':
          description: Successfully fetched the API key by its Access key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAPIKey'
              examples:
                createOrganizationOwnerAPIKey:
                  value:
                    id: IS9DrRsw4KWFS72Zhbj4xmhllHvPcdCL
                    name: Organization Owner API Key
                    description: Creates an API key with an Organization Owner role.
                    expiry: 720
                    allowedCIDRs:
                      - 8.8.8.8/32
                    organizationRoles:
                      - organizationOwner
                    resources: []
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56Z'
                      modifiedBy: ''
                      modifiedAt: '2021-09-01T12:34:56Z'
                      version: 1
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete API Key
      description: |
        Deletes the given API key under an organization.

        Organization Owners can delete any API key inside the Organization.

        Organization Members and Project Creator can delete any Project scoped API key for which they are Project Owner.

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Api Keys
      operationId: deleteOrganizationAPIKey
      responses:
        '204':
          description: Successfully deleted the API key by its Access key.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/apikeys/{ApiKeyId}/rotate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/AccessKey'
    post:
      summary: Rotate API Key
      description: |
        Rotate the secret of a given API key under an organization.

        Organization Owners can rotate any API key inside the Organization.

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Api Keys
      operationId: postOrganizationAPIKeyRotate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RotateAPIKeyRequest'
            examples:
              rotateOrganizationOwnerAPIKey:
                value:
                  secret: <YOUR_SECRET_KEY_HERE>
      responses:
        '200':
          description: Successfully rotated the API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RotateAPIKeyResponse'
              examples:
                rotateOrganizationOwnerAPIKey:
                  value:
                    secretKey: <YOUR_SECRET_KEY_HERE>
                    token: <YOUR_TOKEN_HERE>
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    post:
      summary: Create Project
      description: |
        Creates a new project under the organization.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Creator

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Projects
      operationId: postProject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProjectRequest'
      responses:
        '201':
          description: Successfully created a project under the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProjectResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: List Project
      description: |
        Lists all the projects under the organization.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager
        - Project Viewer
        - Database Data Reader/Writer
        - Database Data Reader

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Projects
      operationId: listProjects
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/ProjectsSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed all the projects under the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProjectsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
    get:
      summary: Get Project
      description: |
        Fetches the details of the given project.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager
        - Project Viewer
        - Database Data Reader/Writer
        - Database Data Reader

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Projects
      operationId: getProjectByID
      responses:
        '200':
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          description: Successfully fetched the project based on the projectId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProjectResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Update Project
      description: |
        Update project name and or project description.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      parameters:
        - $ref: '#/components/parameters/If-Match'
      tags:
        - Projects
      operationId: putProject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProjectRequest'
      responses:
        '204':
          description: Successfully updated the project metadata.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete Project
      description: |
        Deletes an existing project.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Projects
      operationId: deleteProjectByID
      responses:
        '204':
          description: Successfully deleted the project by its projectId.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/freeTier:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/freeTier/{clusterId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/stats:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/freeTier/{clusterId}/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/onOffSchedule:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/onOffSchedule/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/auditLog:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/auditLogEvents:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/auditLogExports:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/auditLogExports/{auditLogExportId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AuditLogExportId'
  /v4/organizations/{organizationId}/cmekAzureApplication:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
  /v4/organizations/{organizationId}/projects/{projectId}/cmekAzureApplication:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
  /v4/organizations/{organizationId}/cmek:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
  /v4/organizations/{organizationId}/projects/{projectId}/cmek:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
  /v4/organizations/{organizationId}/cmek/{cmekId}/history:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/CMEKId'
  /v4/organizations/{organizationId}/cmek/{cmekId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/CMEKId'
  /v4/organizations/{organizationId}/projects/{projectId}/cmek/{cmekId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/CMEKId'
  /v4/organizations/{organizationId}/cmek/providers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
  /v4/organizations/{organizationId}/projects/{projectId}/cmek/providers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/cmek/{cmekId}/associate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/CMEKId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/cmek/{cmekId}/unassociate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/CMEKId'
  /v4/organizations/{organizationId}/users:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    post:
      summary: Create User
      description: |
        Invites a new user under the organization.

        After making a REST API request, an invitation email is triggered and sent to the user.
        Upon receiving the invitation email, the user is required to click on a provided URL, which will redirect them to a page with a user interface (UI) where they can set their username and password.

        The modification of any personal information related to a user can only be performed by the user through the UI.
        Similarly, the user can solely conduct password updates through the UI.

        The "caller" possessing Organization Owner access rights retains the exclusive user creation capability.
        They hold the authority to assign roles at the organization and project levels.

        At present, our support is limited to the resourceType of "project" exclusively.

        In order to access this endpoint, the provided API key must have the following role:
        - Organization Owner

        To learn more, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html).
      tags:
        - Users
      operationId: postUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserRequest'
            examples:
              CreateOrganizationMember:
                value:
                  name: John
                  email: john.doe@example.com
                  organizationRoles:
                    - organizationMember
                  resources:
                    - id: 550e8400-e29b-41d4-a716-446655440000
                      type: project
                      roles:
                        - projectViewer
                    - id: 550e8400-e29b-41d4-a716-446655440000
                      type: project
                      roles:
                        - projectDataReaderWriter
                description: At present, our support is limited to the resourceType of "project" exclusively. Furthermore, the role designation is solely related to roles at the project level.
              CreateOrganizationOwner:
                value:
                  name: John
                  email: john.doe@example.com
                  organizationRoles:
                    - organizationOwner
                description: We don't need to explicitly add the resources field if the user is an organizationOwner
      responses:
        '201':
          description: Successfully sent invite to the user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUserResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: List Users
      description: |
        Lists all the users in the organization and filter on the basis of projectId.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Organization Member
        - Project Creator

        The results are always limited by the role and scope of the caller's privileges.

        When retrieving a list of users through a GET request, if a user holds the organization owner role, the response will exclude project-level permissions for those users. This is because organization owners have full access to all resources within the organization, making project-level permissions irrelevant for them.

        To learn more about the roles, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html) and [Project Roles](https://docs.couchbase.com/cloud/projects/project-roles.html).
      tags:
        - Users
      operationId: listUsers
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/UsersSortBy'
        - $ref: '#/components/parameters/SortDirection'
        - $ref: '#/components/parameters/ProjectIdQuery'
      responses:
        '200':
          description: Successfully listed all the user in the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUsersResponse'
              examples:
                ApiKeyIsOrgOwner:
                  value:
                    data:
                      - id: ffffffff-aaaa-1414-eeee-000000000000
                        name: John
                        email: john.doe@example.com
                        status: verified
                        inactive: false
                        organizationId: ffffffff-aaaa-1414-eeee-000000000000
                        organizationRoles:
                          - organizationMember
                        lastLogin: '2023-07-17T07:05:39.116Z'
                        region: North America
                        timeZone: (UTC +5:30) India Standard Time
                        enableNotifications: false
                        expiresAt: '2023-07-17T07:05:39.116Z'
                        resources:
                          - id: f98e6c87-41e3-4faa-9df4-906e8d4f1aaf
                            type: project
                            roles:
                              - projectViewer
                          - id: b7c745ac-9fb8-4b63-a0e4-51230097a169
                            type: project
                            roles:
                              - projectDataReaderWriter
                          - id: 28b67422-63d5-46b1-9234-8ad4a1d2f7be
                            type: project
                            roles:
                              - projectDataReaderWriter
                          - id: e3942eaa-0f52-43da-963d-87a5b6cb3805
                            type: project
                            roles:
                              - projectDataReaderWriter
                        audit:
                          createdBy: ffffffff-aaaa-1414-eeee-000000000000
                          createdAt: '2021-09-01T12:34:56.000Z'
                          modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                          modifiedAt: '2021-09-01T12:34:56.000Z'
                          version: 1
                    cursor:
                      pages:
                        page: 2
                        next: 3
                        previous: 1
                        last: 10
                        perPage: 10
                        totalItems: 10
                      hrefs:
                        first: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                        last: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                        previous: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                        next: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                  description: In the event that the API key holds "organizationOwner" access, information related to all projects within the organization will be returned.
                ApiKeyIsProjectOwner:
                  value:
                    data:
                      - id: ffffffff-aaaa-1414-eeee-000000000000
                        name: John
                        email: john.doe@example.com
                        status: verified
                        inactive: false
                        organizationId: ffffffff-aaaa-1414-eeee-000000000000
                        organizationRoles:
                          - organizationMember
                        lastLogin: '2023-07-17T07:05:39.116Z'
                        region: North America
                        timeZone: (UTC +5:30) India Standard Time
                        enableNotifications: false
                        expiresAt: '2023-07-17T07:05:39.116Z'
                        resources:
                          - id: f98e6c87-41e3-4faa-9df4-906e8d4f1aaf
                            type: project
                            roles:
                              - projectViewer
                          - id: b7c745ac-9fb8-4b63-a0e4-51230097a169
                            type: project
                            roles:
                              - projectDataReaderWriter
                        audit:
                          createdBy: ffffffff-aaaa-1414-eeee-000000000000
                          createdAt: '2021-09-01T12:34:56.000Z'
                          modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                          modifiedAt: '2021-09-01T12:34:56.000Z'
                          version: 1
                    cursor:
                      pages:
                        page: 2
                        next: 3
                        previous: 1
                        last: 10
                        perPage: 10
                        totalItems: 10
                      hrefs:
                        first: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                        last: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                        previous: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                        next: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                  description: Assuming an organization with four projects labeled A, B, C, and D, if the API key holds an organizational-level role of "organizationMember" and read access solely to projects C and D, then project-specific information exclusively pertaining to C and D will be returned, regardless of whether they conduct a search based on the projectId.
                ReturnedUserIsOrganizationOwner:
                  value:
                    data:
                      - id: ffffffff-aaaa-1414-eeee-000000000000
                        name: John
                        email: john.doe@example.com
                        status: verified
                        inactive: false
                        organizationId: ffffffff-aaaa-1414-eeee-000000000000
                        organizationRoles:
                          - organizationOwner
                        lastLogin: '2023-07-17T07:05:39.116Z'
                        region: North America
                        timeZone: (UTC +5:30) India Standard Time
                        enableNotifications: false
                        expiresAt: '2023-07-17T07:05:39.116Z'
                        audit:
                          createdBy: ffffffff-aaaa-1414-eeee-000000000000
                          createdAt: '2021-09-01T12:34:56.000Z'
                          modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                          modifiedAt: '2021-09-01T12:34:56.000Z'
                          version: 1
                    cursor:
                      pages:
                        page: 2
                        next: 3
                        previous: 1
                        last: 10
                        perPage: 10
                        totalItems: 10
                      hrefs:
                        first: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                        last: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                        previous: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                        next: https://cloud.couchbase.com/v4/users?page=1&perPage=10
                  description: If the user returned possesses "organizationOwner" access, the resources field will not be returned due to the user's unrestricted access to all resources within the organization.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/users/{userId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/CPUserId'
    get:
      summary: Get User
      description: |
        Fetches the details of the given user.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Organization Member
        - Project Creator

        The results are always limited by the role and scope of the caller's privileges.

        When performing a GET request for a user with an organization owner role, the response will exclude project-level permissions for that user. This is because organization owners have access to all resources at the organization level, rendering project-level permissions unnecessary for them.

        To learn more about the roles, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html) and [Project Roles](https://docs.couchbase.com/cloud/projects/project-roles.html).
      tags:
        - Users
      operationId: getUser
      responses:
        '200':
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          description: Successfully fetched the user based on the userId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      summary: Update User
      description: |
        Updates organizationRole and resources of the user.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner

        An Organization Owner API key can be utilized to update organizational-level roles and project-level roles for all projects within the organization.

        The Project Owner API key allows for updating project-level roles, solely within the projects where the API key holds the Project Owner role.

        The modification of any personal information related to a user, such as password updates, can only be performed by the respective user through the user interface (UI).

        The results are always limited by the role and scope of the caller's privileges.
        To learn more about the roles, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html) and [Project Roles](https://docs.couchbase.com/cloud/projects/project-roles.html).
      tags:
        - Users
      operationId: patchUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchUserRequest'
            examples:
              addOrganizationRole:
                value:
                  - op: add
                    path: /organizationRoles
                    value:
                      - projectCreator
              removeOrganizationRole:
                value:
                  - op: remove
                    path: /organizationRoles
                    value:
                      - projectCreator
              addResource:
                value:
                  - op: add
                    path: /resources/{resourceId}
                    value:
                      id: ffffffff-aaaa-1414-eeee-111111111111
                      type: project
                      roles:
                        - projectDataReaderWriter
              removeResourceRole:
                value:
                  - op: remove
                    path: /resources/{resourceId}/roles
                    value:
                      - projectViewer
              addResourceRole:
                value:
                  - op: add
                    path: /resources/{resourceId}/roles
                    value:
                      - projectManager
              removeResource:
                value:
                  - op: remove
                    path: /resources/{resourceId}
              performMultipleOperations:
                value:
                  - op: add
                    path: /organizationRoles
                    value:
                      - projectCreator
                  - op: remove
                    path: /resources/{resourceId}
      responses:
        '200':
          description: Successfully updated the user metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserResponse'
              examples:
                addOrganizationRole:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
                    name: Jane
                    email: jane.doe@example.com
                    status: verified
                    inactive: false
                    organizationId: ffffffff-aaaa-1414-eeee-000000000000
                    organizationRoles:
                      - organizationMember
                      - projectCreator
                    lastLogin: '2023-07-17T07:05:39.116Z'
                    region: North America
                    timeZone: (UTC +5:30) India Standard Time
                    enableNotifications: false
                    expiresAt: '2023-07-17T07:05:39.116Z'
                    resources:
                      - id: b7c745ac-9fb8-4b63-a0e4-51230097a169
                        type: project
                        roles:
                          - projectViewer
                      - id: 28b67422-63d5-46b1-9234-8ad4a1d2f7be
                        type: project
                        roles:
                          - projectDataReaderWriter
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56.000Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56.000Z'
                      version: 2
                removeOrganizationRole:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
                    name: John
                    email: john.doe@example.com
                    status: verified
                    inactive: false
                    organizationId: ffffffff-aaaa-1414-eeee-000000000000
                    organizationRoles:
                      - organizationMember
                    lastLogin: '2023-07-17T07:05:39.116Z'
                    region: North America
                    timeZone: (UTC +5:30) India Standard Time
                    enableNotifications: false
                    expiresAt: '2023-07-17T07:05:39.116Z'
                    resources:
                      - id: 28b67422-63d5-46b1-9234-8ad4a1d2f7be
                        type: project
                        roles:
                          - projectViewer
                      - id: b7c745ac-9fb8-4b63-a0e4-51230097a169
                        type: project
                        roles:
                          - projectDataReaderWriter
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56.000Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56.000Z'
                      version: 2
                addResource:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
                    name: John
                    email: john.doe@example.com
                    status: verified
                    inactive: false
                    organizationId: ffffffff-aaaa-1414-eeee-000000000000
                    organizationRoles:
                      - organizationMember
                    lastLogin: '2023-07-17T07:05:39.116Z'
                    region: North America
                    timeZone: (UTC +5:30) India Standard Time
                    enableNotifications: false
                    expiresAt: '2023-07-17T07:05:39.116Z'
                    resources:
                      - id: ffffffff-aaaa-1414-eeee-000000000000
                        type: project
                        roles:
                          - projectViewer
                      - id: ffffffff-aaaa-1414-eeee-111111111111
                        type: project
                        roles:
                          - projectDataReaderWriter
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56.000Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56.000Z'
                      version: 2
                removeResourceRole:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
                    name: John
                    email: john.doe@example.com
                    status: verified
                    inactive: false
                    organizationId: ffffffff-aaaa-1414-eeee-000000000000
                    organizationRoles:
                      - organizationMember
                    lastLogin: '2023-07-17T07:05:39.116Z'
                    region: North America
                    timeZone: (UTC +5:30) India Standard Time
                    enableNotifications: false
                    expiresAt: '2023-07-17T07:05:39.116Z'
                    resources:
                      - id: b7c745ac-9fb8-4b63-a0e4-51230097a169
                        type: project
                        roles:
                          - projectDataReaderWriter
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56.000Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56.000Z'
                      version: 2
                addResourceRole:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
                    name: John
                    email: john@example.com
                    status: verified
                    inactive: false
                    organizationId: ffffffff-aaaa-1414-eeee-000000000000
                    organizationRoles:
                      - organizationMember
                    lastLogin: '2023-07-17T07:05:39.116Z'
                    region: North America
                    timeZone: (UTC +5:30) India Standard Time
                    enableNotifications: false
                    expiresAt: '2023-07-17T07:05:39.116Z'
                    resources:
                      - id: b7c745ac-9fb8-4b63-a0e4-51230097a169
                        type: project
                        roles:
                          - projectViewer
                          - projectManager
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56.000Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56.000Z'
                      version: 2
                removeResource:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
                    name: John
                    email: john.doe@example.com
                    status: verified
                    inactive: false
                    organizationId: ffffffff-aaaa-1414-eeee-000000000000
                    organizationRoles:
                      - organizationMember
                    lastLogin: '2023-07-17T07:05:39.116Z'
                    region: North America
                    timeZone: (UTC +5:30) India Standard Time
                    enableNotifications: false
                    expiresAt: '2023-07-17T07:05:39.116Z'
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56.000Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56.000Z'
                      version: 2
                performMultipleOperation:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
                    name: John
                    email: john.doe@example.com
                    status: verified
                    inactive: false
                    organizationId: ffffffff-aaaa-1414-eeee-000000000000
                    organizationRoles:
                      - organizationMember
                      - projectCreator
                    lastLogin: '2023-07-17T07:05:39.116Z'
                    region: North America
                    timeZone: (UTC +5:30) India Standard Time
                    enableNotifications: false
                    expiresAt: '2023-07-17T07:05:39.116Z'
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56.000Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56.000Z'
                      version: 2
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete User
      description: |
        Removes user from the organization.

        In order to access this endpoint, the provided API key must have the following role:
        - Organization Owner

        To learn more about the roles, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html).
      tags:
        - Users
      operationId: deleteUser
      responses:
        '204':
          description: Successfully removed the user from the organization.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/allowedcidrs:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/allowedcidrs/{allowedCidrId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AllowedCidrId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/users:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/freeTier:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/appservices:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/freeTier/{appServiceId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/allowedcidrs/{allowedCidrId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/AllowedCidrId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/allowedcidrs:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/adminUsers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/adminUsers/{userId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/UserId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/auditLog:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/logStreaming/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/certificates:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/collections:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/activationStatus:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/cors:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/adminUsers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/auditLogEvents:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/auditLog:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/logStreaming:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/logStreaming:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointKeyspace}/accessControlFunction:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointKeyspace'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointKeyspace}/importFilter:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointKeyspace'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/oidcProviders:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/oidcProviders/{OIDCProviderId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
      - $ref: '#/components/parameters/OIDCProviderId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/oidcProviders/defaultProvider:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/appEndpoints/{appEndpointName}/resync:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/appEndpointId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/auditLogStreaming:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/auditLogExports:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/auditLogExports/{auditLogExportId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/AuditLogExportId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/privateEndpointService:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/privateEndpointService/privateEndpointCommand:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/privateEndpointService/endpoints:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/{appServiceId}/privateEndpointService/endpoints/{endpointId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
      - $ref: '#/components/parameters/EndpointID'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/users/{userId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/UserId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/freeTier:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/freeTier/{bucketId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/{bucketId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/{bucketId}/flush:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/bucketStorageMigration:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/privateEndpointService:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/privateEndpointService/endpoints:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/privateEndpointService/endpointCommand:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/privateEndpointService/endpoints/{endpointId}/associate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/EndpointID'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/privateEndpointService/endpoints/{endpointId}/unassociate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/EndpointID'
  /v4/organizations/{organizationId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    get:
      summary: Get Organization
      description: |
        Fetches the details of an organization by ID.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Creator
        - Organization Member

        To learn more, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html).
      tags:
        - Organizations
      operationId: getOrganizationByID
      responses:
        '200':
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          description: Successfully returned the organization details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOrganizationResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/configuration:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    put:
      summary: Update Organization Configuration
      description: |
        Updates an existing organization configuration. Use this endpoint to add, update, and delete network subdomains.

        Subdomains are not automatically available. You must contact Couchbase support to enable this feature. To open a Support ticket, see [Create a Support Ticket](https://docs.couchbase.com/cloud/support/manage-support.html#create-support-ticket).

        Subdomains:
        - Can have a maximum of 30 alphanumeric characters.
        - Must be a unique string and not already in use in another tenant or organization. Empty strings are allowed.
        - Only affect new clusters. You cannot update existing clusters to include a new subdomain.

        In order to access this endpoint, the provided API key must have the following role:
        - Organization Owner

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      parameters:
        - $ref: '#/components/parameters/If-Match'
      tags:
        - Organizations
      operationId: putOrganizationConfiguration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateOrganizationConfigurationRequest'
            examples:
              UpdateSubdomain:
                value:
                  subdomain: abc
              DeleteSubdomain:
                value:
                  subdomain: ''
      responses:
        '204':
          description: Successfully updated the organization configuration.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations:
    get:
      summary: List Organizations
      description: |
        Returns a list of all organizations the user has access to.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Creator
        - Organization Member

        To learn more, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html).
      tags:
        - Organizations
      operationId: listOrganizations
      responses:
        '200':
          description: Successfully listed all the organizations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOrganizationsResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/certificates:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/sampleBuckets:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/sampleBuckets/{bucketId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/{bucketId}/backups:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/backups:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/backups/{backupId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BackupId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/cloudsnapshotbackups:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/cloudsnapshotbackups/restores:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/cloudsnapshotbackups/regions:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/cloudsnapshotbackups/{backupId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BackupId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/cloudsnapshotbackups/{backupId}/restore:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BackupId'
  /v4/organizations/{organizationId}/projects/{projectId}/cloudsnapshotbackups:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
  /v4/organizations/{organizationId}/projects/{projectId}/cloudsnapshotbackups/{backupId}/clone:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/BackupId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/cloudsnapshotbackupschedule:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/{bucketId}/backup/schedules:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/{bucketId}/backup/cycles:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/{bucketId}/backup/cycles/{cycleId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
      - $ref: '#/components/parameters/CycleId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/backups/{backupId}/restore:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BackupId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/{bucketId}/scopes:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/{bucketId}/scopes/{scopeName}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
      - $ref: '#/components/parameters/ScopeName'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/{bucketId}/scopes/{scopeName}/collections:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
      - $ref: '#/components/parameters/ScopeName'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/buckets/{bucketId}/scopes/{scopeName}/collections/{collectionName}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
      - $ref: '#/components/parameters/ScopeName'
      - $ref: '#/components/parameters/CollectionName'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
    post:
      summary: Create new analytics cluster
      description: |
        Creates a new analytics cluster

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project  Owner
        - Project Manager

             To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Clusters
      operationId: createAnalyticsCluster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateColumnarAnalyticsClusterRequest'
      responses:
        '202':
          description: Successfully created an analytics cluster
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateColumnarAnalyticsClusterResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          description: The request is unavailable unavailable for trial accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                PaymentRequired:
                  value:
                    httpStatusCode: 402
                    code: 10000
                    message: Unavailable for trial accounts.
                    hint: Please upgrade to a paid account to access this feature.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: List project level analytics clusters
      description: |
        Lists all the analytics clusters for a project

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager
        - Project Viewer
        - Database Data Reader/Writer
        - Database Data Reader
      tags:
        - Columnar Analytics Clusters
      operationId: listProjectLevelAnalyticsClusters
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/AnalyticsClustersSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed all the analytics clusters for the project
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetColumnarAnalyticsClustersResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/analyticsClusters:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    get:
      summary: List organization level analytics clusters
      description: |
        Lists all the analytics clusters for an organization

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager
        - Project Viewer
        - Database Data Reader/Writer
        - Database Data Reader
      tags:
        - Columnar Analytics Clusters
      operationId: listOrganizationLevelAnalyticsClusters
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/AnalyticsClustersSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed all the analytics clusters for the organization
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetColumnarAnalyticsClustersResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
    get:
      summary: Get analytics cluster details
      description: |
        Gets the details of a single analytics cluster

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager
        - Project Viewer
        - Database Data Reader/Writer
        - Database Data Reader
      tags:
        - Columnar Analytics Clusters
      operationId: getAnalyticsCluster
      responses:
        '200':
          description: Successfully retrieved details of the analytics cluster
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetColumnarAnalyticsClusterResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Update an analytics cluster
      description: |
        Updates an analytics cluster. This could be the name, description, nodes(scaling up/down), or plan and timezone for support.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager

             To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      parameters:
        - $ref: '#/components/parameters/If-Match'
      tags:
        - Columnar Analytics Clusters
      operationId: putAnalyticsCluster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateColumnarAnalyticsClusterRequest'
      responses:
        '204':
          description: Successfully updated the analytics cluster
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete analytics cluster
      description: |
        Deletes the analytics cluster

         In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager

         To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Clusters
      operationId: deleteAnalyticsCluster
      responses:
        '202':
          description: Successfully deleted the analytics cluster
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
    post:
      summary: Turn On Analytics Cluster
      description: |
        Turn analytics cluster on.

        In order to access this endpoint, the provided API key must have at least one of the roles referenced below:
        - Organization Owner
        - Project Owner
        - Project Manager

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Clusters
      operationId: analyticsClusterOn
      responses:
        '202':
          description: Successfully switched the cluster to on state.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Turn Off Analytics Cluster
      description: |
        Turn analytics cluster off.

        Turning off your analytics cluster turns off the compute for your analytics cluster but the storage remains.
        All of the data, indexes and analytics cluster configuration remain, including users and allow lists.

         In order to access this endpoint, the provided API key must have at least one of the roles referenced below:
        - Organization Owner
        - Project Owner
        - Project Manager

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Clusters
      operationId: analyticsClusterOff
      responses:
        '202':
          description: Successfully switched the analytics cluster to off state.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/onOffSchedule:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
    post:
      summary: Create Analytics Cluster On/Off schedule
      description: |
        This provides the means to add an on/off schedule for an analytics cluster

         In order to access this endpoint, the provided API key must have at least one of the roles referenced below:
         - Organization Owner
         - Project Owner
         - Project Manager

         To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics On/Off Schedule
      operationId: postAnalyticsOnOffSchedule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ColumnarAnalyticsOnOffSchedule'
            examples:
              PostAnalyticsOnOffSchedule:
                value:
                  timezone: US/Pacific
                  days:
                    - day: monday
                      state: custom
                      from:
                        hour: 12
                        minute: 30
                      to:
                        hour: 14
                        minute: 30
                    - day: tuesday
                      state: custom
                      from:
                        hour: 21
                        minute: 30
                      to:
                        hour: 23
                        minute: 30
                    - day: wednesday
                      state: 'on'
                    - day: thursday
                      state: 'on'
                    - day: friday
                      state: custom
                      from:
                        hour: 12
                        minute: 30
                      to:
                        hour: 15
                        minute: 30
                    - day: saturday
                      state: 'off'
                    - day: sunday
                      state: 'off'
              PostAnalyticsOnOffScheduleDefaultBoundaryWithoutToBody:
                value:
                  timezone: US/Pacific
                  days:
                    - day: monday
                      state: custom
                      from:
                        hour: 14
                        minute: 30
                    - day: tuesday
                      state: custom
                      from:
                        hour: 22
                        minute: 30
                    - day: wednesday
                      state: 'on'
                    - day: thursday
                      state: 'on'
                    - day: friday
                      state: custom
                      from:
                        hour: 12
                        minute: 30
                    - day: saturday
                      state: 'off'
                    - day: sunday
                      state: 'off'
              PostAnalyticsOnOffScheduleDefaultsBoundaryWithoutHourMinute:
                value:
                  timezone: US/Pacific
                  days:
                    - day: monday
                      state: custom
                      from:
                        hour: 12
                        minute: 30
                      to:
                        hour: 14
                        minute: 30
                    - day: tuesday
                      state: custom
                      from:
                        hour: null
                        minute: null
                      to:
                        hour: 14
                        minute: null
                    - day: wednesday
                      state: 'on'
                    - day: thursday
                      state: 'on'
                    - day: friday
                      state: custom
                      from:
                        hour: 15
                        minute: null
                    - day: saturday
                      state: 'off'
                    - day: sunday
                      state: 'off'
              PostAnalyticsOnOffScheduleDefaultsBoundary:
                value:
                  timezone: US/Pacific
                  days:
                    - day: monday
                      state: custom
                      from:
                        hour: null
                        minute: 30
                      to:
                        hour: 5
                        minute: 30
                    - day: tuesday
                      state: custom
                      from:
                        hour: 21
                        minute: null
                      to: null
                    - day: wednesday
                      state: 'on'
                    - day: thursday
                      state: 'on'
                    - day: friday
                      state: custom
                      from:
                        hour: 12
                        minute: 30
                      to:
                        hour: 14
                        minute: null
                    - day: saturday
                      state: 'off'
                    - day: sunday
                      state: 'off'
              PostAnalyticsOnOffScheduleDefaultsBoundaryWithoutHourMinuteBody:
                value:
                  timezone: US/Pacific
                  days:
                    - day: monday
                      state: custom
                      from:
                        minute: 30
                      to:
                        hour: 14
                        minute: 30
                    - day: tuesday
                      state: custom
                      from:
                        hour: 21
                      to:
                        hour: 23
                    - day: wednesday
                      state: 'on'
                    - day: thursday
                      state: 'on'
                    - day: friday
                      state: custom
                      from:
                        hour: 12
                      to:
                        hour: 15
                        minute: 30
                    - day: saturday
                      state: 'off'
                    - day: sunday
                      state: 'off'
      responses:
        '204':
          description: Successfully created an on/off schedule based on the analytics clusterId.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: Get Analytics Cluster On/Off Schedule
      description: |
        Fetches the details of the on/off schedule for the given analytics cluster.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
         - Organization Owner
         - Project Owner
         - Project Manager

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics On/Off Schedule
      operationId: getAnalyticsOnOffSchedule
      responses:
        '200':
          description: Successfully fetched the on/off schedule based on the analytics clusterId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ColumnarAnalyticsOnOffSchedule'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Update Analytics Cluster On/Off Schedule
      description: |
        This provides the means to update an existing analytics cluster on/off schedule.

        In order to access this endpoint, the provided API key must have at least one of the roles referenced below:
        - Organization Owner
        - Project Owner
        - Project Manager

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics On/Off Schedule
      operationId: putAnalyticsOnOffSchedule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ColumnarAnalyticsOnOffSchedule'
      responses:
        '204':
          description: Successfully updated the on/off schedule based on the analytics clusterId.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete Analytics Cluster On/Off Schedule
      description: |
        Deletes the on/off schedule for the given analytics cluster.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics On/Off Schedule
      operationId: deleteAnalyticsOnOffSchedule
      responses:
        '204':
          description: Successfully deleted the on/off schedule by its analytics clusterId.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/allowedcidrs:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
    post:
      summary: Create Allowed CIDR
      description: |
        Adds a trusted CIDR to an clusters's list of allowed CIDRs.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).

        Note that updating this resource is not supported; you must delete and recreate allowed CIDRs instead. As a result, ETags are also not supported for this resource.
      tags:
        - Allowed CIDRs (Analytics Cluster)
      operationId: postAnalyticsAllowedCidr
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAllowedCidrRequest'
      responses:
        '201':
          description: Successfully added an allowed CIDR for the analytics cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAllowedCidrResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: List Allowed CIDRs
      description: |
        Lists all of the allowed CIDRs for a given cluster.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager
        - Project Viewer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Allowed CIDRs (Analytics Cluster)
      operationId: listAnalyticsAllowedCidrs
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/AllowedCidrsSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed all allowed CIDRs for the analytics cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllowedCidrsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/allowedcidrs/{allowedCidrId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
      - $ref: '#/components/parameters/AllowedCidrId'
    get:
      summary: Get Allowed CIDR
      description: |
        Fetches the details for the specified allowed CIDR.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager
        - Project Viewer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Allowed CIDRs (Analytics Cluster)
      operationId: getColumnarAllowedCidrByID
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllowedCidr'
          description: Successfully fetched the allowed CIDR details.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete Allowed CIDR
      description: |
        Deletes the existing allowed CIDR.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Allowed CIDRs (Analytics Cluster)
      operationId: deleteColumnarAllowedCidrByID
      responses:
        '204':
          description: Successfully deleted the allowed CIDR by its ID.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/cloudSnapshotBackups:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
    post:
      summary: Create Cloud Snapshot Backup
      description: |
        Creates a new backup for the specified Columnar Analytics Cluster.

        This operation captures the current state of the cluster, which can later be used for restore purposes.

        For further details on managing backups, refer to [Backup and Restore Data](https://docs.couchbase.com/columnar/admin/backup-restore.html).

        To access this endpoint, the provided API key must include one of the following roles.
        - Organization Owner
        - Project Owner
        - Project Manager

        For more information, visit [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Cloud Snapshot Backups & Restore
      operationId: createColumnarAnalyticsBackup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateColumnarAnalyticsBackupRequest'
      responses:
        '202':
          description: Successfully initiated the creation of a backup for the Columnar Analytics Cluster. The response contains the ID of the backup process.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateColumnarAnalyticsBackupResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: List Cloud Snapshot Backups
      description: |
        Retrieves a list of backups for the specified Columnar Analytics Cluster.

        This list includes only the backups that are in progress, completed, or failed. It does not show backups that
        are queued but not yet initiated.

        For further details on managing backups, refer to [Backup and Restore Data](https://docs.couchbase.com/columnar/admin/backup-restore.html).

        To access this endpoint, the provided API key must include one of the following roles.
        - Organization Owner
        - Project Owner
        - Project Manager

        For more information, visit [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Cloud Snapshot Backups & Restore
      operationId: listColumnarAnalyticsBackups
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/ColumnarAnalyticsBackupsSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully retrieved the list of backups for the Columnar Analytics Cluster. The response contains a paginated list of backup details in JSON format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListColumnarAnalyticsBackupsResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/cloudSnapshotBackups/{backupId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
      - $ref: '#/components/parameters/BackupId'
    put:
      summary: Update Backup Retention
      description: |
        Updates the retention period for a specific backup in your analytics cluster.

        The retention period determines how long a backup is stored before it is automatically deleted.
        Adjust this setting to extend or shorten the duration based on your retention policy.

        For further details on managing backups, refer to [Backup and Restore Data](https://docs.couchbase.com/columnar/admin/backup-restore.html).

        To access this endpoint, the provided API key must include one of the following roles.
        - Organization Owner
        - Project Owner
        - Project Manager

        For more information, visit [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Cloud Snapshot Backups & Restore
      operationId: updateColumnarAnalyticsBackupRetention
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditColumnarAnalyticsBackupRetentionRequest'
      responses:
        '204':
          description: The backup retention time was successfully updated. No content is returned in the response.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete Backup
      description: |
        Permanently deletes a specific backup from the analytics cluster.

        This action cannot be undone. Ensure that the backup is no longer needed before deletion,
        as it will remove all data associated with it.

        For further details on managing backups, refer to [Backup and Restore Data](https://docs.couchbase.com/columnar/admin/backup-restore.html).

        To access this endpoint, the provided API key must include one of the following roles.
        - Organization Owner
        - Project Owner
        - Project Manager

        For more information, visit [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Cloud Snapshot Backups & Restore
      operationId: deleteColumnarAnalyticsBackup
      responses:
        '202':
          description: The backup deletion request was successfully received and is being processed.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/cloudSnapshotBackupSchedule:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
    put:
      summary: Upsert Backup Schedule
      description: |
        Creates or updates the backup schedule for the specified Columnar Analytics Cluster.

        This operation allows you to configure or modify the timing and frequency of backups.
        It ensures that the cluster's backup process follows the defined schedule.

        For further details on managing backups, refer to [Backup and Restore Data](https://docs.couchbase.com/columnar/admin/backup-restore.html).

        To access this endpoint, the provided API key must include one of the following roles.
        - Organization Owner
        - Project Owner
        - Project Manager

        For more information on access roles, visit [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Cloud Snapshot Backups Schedule
      operationId: upsertColumnarAnalyticsBackupSchedule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertColumnarAnalyticsBackupScheduleRequest'
      responses:
        '204':
          description: The backup schedule was successfully created or updated. No content will be returned in the response.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: Get Backup Schedule
      description: |
        Retrieves the current backup schedule for the specified Columnar Analytics Cluster.

        This operation provides the details of the backup schedule, including timing and frequency,
        so you can view and verify when backups are set to occur.

        For further details on managing backups, refer to [Backup and Restore Data](https://docs.couchbase.com/columnar/admin/backup-restore.html).

        To access this endpoint, the provided API key must include one of the following roles.
        - Organization Owner
        - Project Owner
        - Project Manager

        For more information on access roles, visit [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Cloud Snapshot Backups Schedule
      operationId: getColumnarAnalyticsBackupSchedule
      responses:
        '200':
          description: The backup schedule was successfully retrieved, and the response contains the details of the schedule in JSON format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetColumnarAnalyticsBackupScheduleResponse'
        '204':
          description: The backup schedule was not found for the specified Columnar Analytics Cluster. No content will be returned in the response.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete Backup Schedule
      description: |
        Deletes the existing backup schedule for the specified Columnar Analytics Cluster.

        This action permanently removes the scheduled backups, so no future backups will be
        initiated unless a new schedule is created.

        For further details on managing backups, refer to [Backup and Restore Data](https://docs.couchbase.com/columnar/admin/backup-restore.html).

        To access this endpoint, the provided API key must include one of the following roles.
        - Organization Owner
        - Project Owner
        - Project Manager

          For more information on access roles, visit [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Cloud Snapshot Backups Schedule
      operationId: deleteColumnarAnalyticsBackupSchedule
      responses:
        '204':
          description: The backup schedule was successfully deleted. No content will be returned in the response.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/cloudSnapshotBackups/{backupId}/restore:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
      - $ref: '#/components/parameters/BackupId'
    post:
      summary: Restore Backup
      description: |
        Initiates an immediate restore job from a specified backup for the Columnar Analytics Cluster.

        This operation allows you to restore data from an existing backup to the current state of the cluster.

        For further details on managing backups, refer to [Backup and Restore Data](https://docs.couchbase.com/columnar/admin/backup-restore.html).

        To access this endpoint, the provided API key must include one of the following roles.
        - Organization Owner
        - Project Owner
        - Project Manager

        For more information, visit [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Cloud Snapshot Backups & Restore
      operationId: restoreColumnarAnalyticsCluster
      responses:
        '202':
          description: Successfully initiated a restore job for the Columnar Analytics Cluster. The response includes the ID of the restore operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateColumnarAnalyticsRestoreResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/cloudSnapshotBackups/restores:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
    get:
      summary: List Cloud Snapshot Restores
      description: |
        Retrieves a list of restore operations that have been performed for the specified Columnar Analytics Cluster.

        This allows you to track completed, ongoing, or failed restore jobs for your cluster.

        For further details on managing backups, refer to [Backup and Restore Data](https://docs.couchbase.com/columnar/admin/backup-restore.html).

        To access this endpoint, the provided API key must include one of the following roles.
        - Organization Owner
        - Project Owner
        - Project Manager

        For more information, visit [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Cloud Snapshot Backups & Restore
      operationId: listColumnarAnalyticsRestores
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/ColumnarAnalyticsRestoresSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully retrieved the list of restore operations for the Columnar Analytics Cluster. The response contains a paginated list of restore job details in JSON format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListColumnarAnalyticsRestoresResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/networkPeers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/privateEndpointService:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
    get:
      summary: Get Columnar Analytics Private Endpoint Service Status
      description: |
        Private endpoint service allows you to access your Analytics cluster from your private network, using private endpoints.
        Currently limited to AWS.

        This endpoint allows you to get the status of private endpoint to see whether the job to enable private endpoint was successful or not.


        In order to access this endpoint, the provided API key must have at least one of the following roles:
          - Organization Owner
          - Project Owner
          - Project Manager
          - Project Viewer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Private Endpoint Service
      operationId: getColumnarPrivateEndpointServiceStatus
      responses:
        '200':
          description: Successfully retrieved private endpoint status of the Analytics cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPrivateEndpointServiceResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      summary: Enable Columnar Analytics Private Endpoint Service
      description: |
        Enable private endpoint service on your Analytics cluster. Currently limited to AWS.

        Supporting infrastructure is deployed and it may take a few minutes for private endpoints to be available.
        After it's enabled, you can create private endpoint in your network.  You can do this using the cloud provider's CLI, UI and SDK.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner
        - Project Manager

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Private Endpoint Service
      operationId: enableColumnarPrivateEndpointService
      responses:
        '202':
          description: Successfully submitted request to enable private endpoint service.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Disable Columnar Analytics Private Endpoint Service
      description: |
        Disable private endpoint service on your Analytics cluster. Currently limited to AWS.

        Supporting infrastructure is removed and it may take a few minutes before private endpoints is disabled.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Project Owner

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Private Endpoint Service
      operationId: disableColumnarPrivateEndpointService
      responses:
        '202':
          description: Successfully submitted request to disable private endpoint service.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/privateEndpointService/endpointCommand:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
    post:
      summary: Get Columnar Private Endpoint CLI Command required to setup private endpoint for specific CSP
      description: |
        Retrieve the command or script to be executed in order to create the private endpoint which will provides a private connection between the specified VPC and the specified Capella private endpoint service.  
        Currently only available for AWS. An example for AWS:

        ```
        aws ec2 create-vpc-endpoint \
          --vpc-id vpc-1234 \
          --region us-east-1 \
          --service-name com.amazonaws.vpce.us-east-1.vpce-svc-1234 \
          --vpc-endpoint-type Interface \
          --subnet-ids subnet-1234
        ```

        In order to access this endpoint, the provided API key must have at least one of the following roles:
          - Organization Owner
          - Project Owner
          - Project Manager
          - Project Viewer

          To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Private Endpoint Service
      operationId: getColumnarPrivateEndpointServiceCommand
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePrivateEndpointServiceCommandRequest'
            examples:
              PostColumnarAnalyticsAWSCommandRequest:
                value:
                  vpcID: vpc-1234
                  subnetIDs:
                    - subnet-1234
      responses:
        '200':
          description: Successfully provided command to create a private endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePrivateEndpointServiceCommandResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/privateEndpointService/endpoints:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
    get:
      summary: List Columnar Analytics Private Endpoint Connections
      description: |
        Returns a list of private endpoints, along with the endpoint state, associated with the endpoint service for the Analytics cluster.
        Currently limited to AWS.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
          - Organization Owner
          - Project Owner
          - Project Manager
          - Project Creator
          - Project Viewer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Private Endpoint Service
      operationId: listColumnarPrivateEndpointServiceConnection
      responses:
        '200':
          description: Successfully retrieved private endpoint status for the Analytics cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPrivateEndpointServiceConnectionsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/privateEndpointService/endpoints/{endpointId}/associate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
      - $ref: '#/components/parameters/EndpointID'
    post:
      summary: Accept or associate Columnar Analytics Private Endpoint Request
      description: |
        Accept a new private endpoint connection request so that it is associated with the endpoint service. 
        This means the private endpoint is available for use. Currently limted to AWS.

         In order to access this endpoint, the provided API key must have at least one of the following roles:
           - Organization Owner
           - Project Owner
           - Project Manager

         To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Private Endpoint Service
      operationId: acceptColumnarPrivateEndpointServiceConnection
      responses:
        '204':
          description: Successfully accepted private endpoint connection for the Analytics cluster.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/privateEndpointService/endpoints/{endpointId}/unassociate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
      - $ref: '#/components/parameters/EndpointID'
    post:
      summary: Reject or disassociate Columnar Analytics Private Endpoint connection
      description: |
        Removes the private endpoint associated with the endpoint service. 
        This means the private endpoint is no longer able to connect to the private endpoint service.
        Currently limited to AWS.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
          - Organization Owner
          - Project Owner
          - Project Manager

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Columnar Analytics Private Endpoint Service
      operationId: rejectColumnarPrivateEndpointServiceConnection
      responses:
        '204':
          description: Successfully rejected private endpoint connection
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/networkPeers/{peerId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/PeerId'
  /v4/organizations/{organizationId}/projects/{projectId}/alertIntegrations:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
  /v4/organizations/{organizationId}/projects/{projectId}/alertIntegrations/{alertIntegrationId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AlertIntegrationId'
  /v4/organizations/{organizationId}/projects/{projectId}/alertIntegrationTest:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
  /v4/organizations/{organizationId}/events:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
  /v4/organizations/{organizationId}/events/{eventId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/EventId'
  /v4/organizations/{organizationId}/projects/{projectId}/events:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
  /v4/organizations/{organizationId}/projects/{projectId}/events/{eventId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/EventId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/networkPeers/networkPeerCommand:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/queryService/indexes:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/queryService/indexes/{indexName}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/IndexName'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/queryService/indexBuildStatus/{indexName}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/IndexName'
  /v4/organizations/{organizationId}/aiServices/providers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
  /v4/organizations/{organizationId}/aiServices/providers/{providerId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProviderId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/aiServices/workflows:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/aiServices/workflows/{workflowId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/WorkflowId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/aiServices/workflows/{workflowId}/runs:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/WorkflowId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/aiServices/workflows/{workflowId}/runs/{runId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/WorkflowId'
      - $ref: '#/components/parameters/WorkflowRunId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/aiServices/workflows/{workflowId}/runs/{runId}/processedFiles:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/WorkflowId'
      - $ref: '#/components/parameters/WorkflowRunId'
  /v4/organizations/{organizationId}/aiServices/models:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
  /v4/organizations/{organizationId}/aiServices/models/{modelId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ModelId'
  /v4/organizations/{organizationId}/aiServices/models/{modelId}/connectionString:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ModelId'
  /v4/organizations/{organizationId}/aiServices/models/{modelId}/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ModelId'
  /v4/organizations/{organizationId}/aiServices/models/apiKeys:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
  /v4/organizations/{organizationId}/aiServices/models/apiKeys/{apiKeyId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ModelAPIKeyId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/replications/{replicationId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/ReplicationId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/replications/jobs/{jobId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/JobId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/replications:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/replications/{replicationId}/activationStatus:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/ReplicationId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/dataAPI:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/dataAPI/privateEndpointCommand:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/dataAPI/privateEndpoints:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/dataAPI/privateEndpoints/{endpointId}/associate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/EndpointID'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/dataAPI/privateEndpoints/{endpointId}/unassociate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/EndpointID'
components:
  parameters:
    APIKeysSortBy:
      in: query
      name: sortBy
      description: ' Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **name**, **createdAt**, **expiry**.'
      example:
        - name
      required: false
      schema:
        type: array
        items:
          type: string
    AccessKey:
      name: ApiKeyId
      description: |
        The ID (Access key) of the API key.
      in: path
      required: true
      schema:
        type: string
        example: ffffffffaaaa1414eeee000000000000
    AlertIntegrationId:
      name: alertIntegrationId
      description: The GUID4 ID of the alert integration.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    AllowedCidrId:
      name: allowedCidrId
      description: The GUID4 ID of the allowed CIDR.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    AllowedCidrsSortBy:
      in: query
      name: sortBy
      description: ' Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **id**, **type**, **status**.'
      example:
        - id
      required: false
      schema:
        type: array
        items:
          type: string
    AnalyticsClusterId:
      name: analyticsClusterId
      description: The GUID4 ID of the analytics cluster.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    AnalyticsClustersSortBy:
      in: query
      name: sortBy
      description: 'Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **id**, **cloudProvider**, **name**.'
      example:
        - name
      required: false
      schema:
        type: array
        items:
          type: string
    AppEndpointsSortBy:
      $ref: '#/components/parameters/AppServicesSortBy'
    AppServiceId:
      name: appServiceId
      description: The GUID4 ID of the appService.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    AppServicesSortBy:
      in: query
      name: sortBy
      description: ' Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **name**, **id**, **description**.'
      example:
        - name
      required: false
      schema:
        type: array
        items:
          type: string
    AuditLogExportId:
      name: auditLogExportId
      description: The export ID of the audit log export job.
      in: path
      required: true
      schema:
        type: string
        example: ffffffff-aaaa-1414-eeee-000000000000
    BackupId:
      name: backupId
      description: The GUID4 ID of the backup.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    BucketId:
      name: bucketId
      description: The ID of the bucket. It is the URL-compatible base64 encoding of the bucket name.
      in: path
      required: true
      schema:
        type: string
        example: dGVzdA
    BucketQueryParameter:
      in: query
      name: bucket
      description: |
        Specifies the bucket part of the key space.
        To learn more about scopes and collections, see [Buckets, Scopes, and Collections](https://docs.couchbase.com/cloud/clusters/data-service/about-buckets-scopes-collections.html).
      required: true
      schema:
        type: string
        example: bucket=travel-sample
    CMEKId:
      name: cmekId
      description: The GUID4 ID of the KMS Key metadata.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    CMEKKeysSortBy:
      in: query
      name: sortBy
      description: Sets the order of how you would like to sort the results and the key you would like to order by.
      example:
        - name
      required: false
      schema:
        type: array
        items:
          type: string
    CPUserId:
      name: userId
      description: The GUID4 ID of the control plane user.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    CertificateId:
      name: certId
      description: The GUID4 ID of the certificate.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    CloudSnapshotBackupsSortBy:
      in: query
      name: sortBy
      description: 'Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **id**, **createdAt**, **expiration**, **retention**, **sizee**, **type**.'
      example:
        - createdAt
      required: false
      schema:
        type: array
        items:
          type: string
    CloudSnapshotRestoresSortBy:
      $ref: '#/components/parameters/CloudSnapshotBackupsSortBy'
    ClusterId:
      name: clusterId
      description: The GUID4 ID of the cluster.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    ClusterIds:
      name: clusterIds
      description: |
        List of clusterIds to filter on. By default events corresponding to all clusters are returned.
      example:
        - ffffffff-aaaa-1414-eeee-000000000000
      in: query
      schema:
        type: array
        items:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
    ClustersSortBy:
      in: query
      name: sortBy
      description: 'Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **id**, **availability**, **cloudProvider**, **couchbaseServer**, **currentState**, **name**.'
      example:
        - name
      required: false
      schema:
        type: array
        items:
          type: string
    CollectionName:
      name: collectionName
      description: The name of the collection.
      in: path
      required: true
      schema:
        type: string
        example: airline
    CollectionQueryParameter:
      in: query
      name: collection
      description: |
        Specifies the collection part of the key space. If unspecified, this will be the default collection.
        To learn more about scopes and collections, see [Buckets, Scopes, and Collections](https://docs.couchbase.com/cloud/clusters/data-service/about-buckets-scopes-collections.html).
      required: false
      schema:
        type: string
        example: collection=hotel
    ColumnarAnalyticsBackupsSortBy:
      in: query
      name: sortBy
      description: 'Sets the order in which you would like to sort the results and the key you would like to sort by. Valid fields to sort the results are: **id**, **createdAt**, **expiration**, **retention**, **size**, **type**.'
      example:
        - createdAt
      required: false
      schema:
        type: array
        items:
          type: string
    ColumnarAnalyticsRestoresSortBy:
      in: query
      name: sortBy
      description: 'Sets the order in which you would like to sort the results and the key you would like to sort by. Valid fields to sort the results are: **id**, **createdAt**'
      example:
        - createdAt
      required: false
      schema:
        type: array
        items:
          type: string
    CycleId:
      name: cycleId
      description: The GUID4 ID of the cycle.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    DatabaseCredentialsSortBy:
      in: query
      name: sortBy
      description: ' Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **name**, **id**.'
      example:
        - name
      required: false
      schema:
        type: array
        items:
          type: string
    EndDate:
      name: endDate
      description: |
        Filters bucket backups till the end date.
        Specify the end date to retrieve relevant bucket backups till end date.
      in: query
      schema:
        type: string
        format: date
        description: Filter to fetch bucket backups.
        example: '2023-07-21'
    EndpointID:
      name: endpointId
      description: The VPC endpoint ID.
      in: path
      required: true
      schema:
        type: string
        example: vpce-1234
    EventId:
      name: eventId
      description: The event ID of the event.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    EventsSortBy:
      in: query
      name: sortBy
      description: ' Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **severity**, **timestamp**.'
      example:
        - timestamp
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - timestamp
            - severity
    FileStatus:
      name: fileStatus
      description: The type of file status used for filtering. By default, all files are returned.
      example: success
      in: query
      schema:
        type: string
        enum:
          - success
          - failed
          - skipped
    FilterByClusterId:
      name: clusterId
      description: |
        Filters by clusterId.
      in: query
      schema:
        type: string
        format: uuid
        description: Filter to fetch appservices belonging to a particular cluster.
    FilterByRegion:
      in: query
      name: filterBy
      description: |
        Filter criteria in the format 'field:operator:value'. 
        Supported operators are 'eq' (equals). 
        Currently, only 'region' is supported as a filter field.
        Example: region:eq:us-east-1
      required: false
      schema:
        type: string
        example: region:eq:us-east-1
    From:
      name: from
      description: Start date in  RFC3339 format. If not provided, events starting from last 24 hours are returned.
      in: query
      schema:
        type: string
        format: date-time
        example: '2024-04-24T12:53:59.000Z'
    If-Match:
      name: If-Match
      in: header
      description: A precondition header that specifies the entity tag of a resource.
      schema:
        type: string
        example: '12'
    IndexName:
      name: indexName
      description: The name of the index.
      in: path
      required: true
      schema:
        type: string
        example: def_city
    JobId:
      name: jobId
      description: The ID of the job.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: 3d4354af-6271-4ba3-aeba-469820d96d12
    ModelAPIKeyId:
      name: apiKeyId
      description: Unique identifier for the Language Model API key
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    ModelId:
      name: modelId
      description: |
        The GUID4 ID of the model.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    OIDCProviderId:
      name: OIDCProviderId
      description: The GUID4 ID of the OpenID Connect Provider.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    OrganizationId:
      name: organizationId
      description: |
        The GUID4 ID of the organization.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    Page:
      in: query
      name: page
      description: Sets the page you would like to view.
      required: false
      schema:
        type: integer
    PeerId:
      name: peerId
      description: The ID of the network peer record.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    PerPage:
      in: query
      name: perPage
      description: Sets the number of results you would like to have on each page.
      required: false
      schema:
        type: integer
    ProjectId:
      name: projectId
      description: The GUID4 ID of the project.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    ProjectIdQuery:
      name: projectId
      description: The GUID4 ID of the project.
      in: query
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    ProjectIds:
      name: projectIds
      description: The GUID4 ID of projects to filter on. By default, events corresponding to all projects are returned
      example:
        - ffffffff-aaaa-1414-eeee-000000000000
      in: query
      schema:
        type: array
        items:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
    ProjectLevelCloudSnapshotBackupsSortBy:
      in: query
      name: sortBy
      description: |
        Specifies the sorting criteria for the results, including the key by which the results should be ordered. Valid fields to sort the results include the following. - **creationDateTime** - **createdBy** - **currentStatus** - **cloudProvider** - **region**
        Provide the desired fields in the order of sorting preference.
      example:
        - creationDateTime
      required: false
      schema:
        type: array
        items:
          type: string
          enum:
            - creationDateTime
            - createdBy
            - currentStatus
            - cloudProvider
            - region
    ProjectsSortBy:
      in: query
      name: sortBy
      description: 'Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **id**, **name**.'
      example:
        - name
      required: false
      schema:
        type: array
        items:
          type: string
    ProviderId:
      name: providerId
      description: The unique identifier of the provider.
      in: path
      required: true
      schema:
        type: string
        example: provider1-ffffffff-aaaa-1414-eeee-000000000000
    ProviderType:
      name: providerType
      description: |
        Type of provider to filter on. By default all providers are returned.
      example: openAI
      in: query
      schema:
        type: string
        enum:
          - awsS3
          - openAI
          - awsBedrock
    ReplicationId:
      name: replicationId
      description: The ID of the replication.
      in: path
      required: true
      schema:
        type: string
        example: aBc23DeFgHiJkLmNop6qRsTuVwX4yZaBcDeFgHiJk5LmNoPqRsTuVwXyZ1
    ReplicationsSortBy:
      in: query
      name: sortBy
      description: 'Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **id**, **sourceCluster**, **targetCluster**, **status**, **direction**, **priority**.'
      example:
        - status
      required: false
      schema:
        type: array
        items:
          type: string
    RestoreId:
      name: restoreId
      description: The GUID4 ID of the restore.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    SampleId:
      name: sampleId
      description: The ID of the sample data import job.
      in: path
      required: true
      schema:
        type: string
        example: dGVzdA
    ScopeName:
      name: scopeName
      description: The name of the scope.
      in: path
      required: true
      schema:
        type: string
        example: inventory
    ScopeQueryParameter:
      in: query
      name: scope
      description: |
        Specifies the scope part of the key space. If unspecified, this will be the default scope.
        To learn more about scopes and collections, see [Buckets, Scopes, and Collections](https://docs.couchbase.com/cloud/clusters/data-service/about-buckets-scopes-collections.html).
      required: false
      schema:
        type: string
        example: scope=inventory
    SeverityLevels:
      name: severityLevels
      description: Filter by severity levels. Default is to return events corresponding to all supported severity levels.
      in: query
      schema:
        type: array
        items:
          type: string
          enum:
            - info
            - warning
            - critical
    SortDirection:
      in: query
      name: sortDirection
      required: false
      schema:
        type: string
        enum:
          - asc
          - desc
      description: The order in which the items will be sorted.
      example: asc
    StartDate:
      name: startDate
      description: |
        Filters bucket backups beginning from the start date.
        Specify the start date to retrieve relevant bucket backups from start date.
      in: query
      schema:
        type: string
        format: date
        description: Filter to fetch bucket backups.
        example: '2023-07-19'
    Tags:
      name: tags
      description: Filter by tags. Default is to return events corresponding to all supported tag. Tags are **availability**, **billing**, **maintenance**, **performance**, **security**, **alert**.
      example:
        - availability
        - billing
        - maintenance
        - performance
        - security
        - alert
      in: query
      schema:
        type: array
        items:
          type: string
          enum:
            - availability
            - billing
            - maintenance
            - performance
            - security
            - alert
    To:
      name: to
      description: End datetime in the last 24 hours, RFC3339 format. Defaults to Now.
      in: query
      schema:
        type: string
        format: date-time
        example: '2024-04-25T12:53:59.000Z'
    UserId:
      name: userId
      description: The GUID4 ID of the database credential.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    UserIds:
      name: userIds
      description: Filter by user UUID. Default is to return events corresponding to all users.
      example:
        - ffffffff-aaaa-1414-eeee-000000000000
      in: query
      schema:
        type: array
        items:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
    UsersSortBy:
      in: query
      name: sortBy
      description: 'Sets the order of how you would like to sort the results and the key you would like to order by. Valid fields to sort the results are: **id**, **name**, **email**, **status**, **inactive**.'
      example:
        - name
      required: false
      schema:
        type: array
        items:
          type: string
    WorkflowId:
      name: workflowId
      description: |
        The unique identifier of the AI workflow.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    WorkflowRunId:
      name: runId
      description: |
        The unique identifier of the AI workflow run.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: ffffffff-aaaa-1414-eeee-000000000000
    appEndpointId:
      name: appEndpointName
      description: The name of the App Endpoint.
      in: path
      required: true
      schema:
        type: string
        example: endpoint1
    appEndpointKeyspace:
      name: appEndpointKeyspace
      description: |
        A specific collection denoted by the App Endpoint name, the scope name and collection name separated by a period, for example "endpoint1.scope1.collection1".
        If only an App Endpoint name is provided this will be interpreted as "endpoint1._default._default". If only an App Endpoint name and collection name are
        provided these will interpreted as a named collection within the default scope, for example "endpoint1.collection1" will be interpreted as "endpoint1._default.collection1".
      in: path
      required: true
      schema:
        type: string
        example: endpoint1.scope1.collection1
  schemas:
    APIKeyAllowedCIDRs:
      type: array
      items:
        type: string
      example:
        - 0.0.0.0/0
      description: |
        List of inbound CIDRs for the API key.
        The system making a request must come from one of the allowed CIDRs.
      default:
        - 0.0.0.0/0
    APIKeyDescription:
      type: string
      description: |
        Description for the API key.
      example: API key to manage production Capella Cluster.
      default: ''
    APIKeyExpiry:
      type: number
      format: float
      default: 180
      description: |
        Expiry of the API key in number of days.
        If set to -1, the token will not expire.
    APIKeyId:
      type: string
      example: IS9DrRsw4KWFS72Zhbj4xmhllHvPcdCL
      description: |
        The id is a unique identifier for an apiKey.
    APIKeyName:
      type: string
      description: |
        Name of the API key.
      example: Production
    APIKeyOrganizationRoles:
      type: string
      enum:
        - organizationOwner
        - organizationMember
        - projectCreator
      example: organizationMember
      description: |
        Organization roles assigned to the API key.

        To learn more, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html).
    APIKeyResources:
      type: array
      description: |
        Resources are the resource level permissions associated with the API key.

        To learn more about Organization Roles, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html).
      items:
        $ref: '#/components/schemas/APIKeyResourcesItems'
      default: []
    APIKeyResourcesItems:
      type: object
      required:
        - id
        - roles
      properties:
        type:
          type: string
          default: project
          description: |
            Type of the resource.
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: |
            ID of the project.
        roles:
          type: array
          items:
            type: string
            enum:
              - projectOwner
              - projectManager
              - projectViewer
              - projectDataReaderWriter
              - projectDataReader
          example:
            - projectDataReaderWriter
            - projectManager
          description: |
            Project Roles associated with the API key.

            To learn more about Project Roles, see [Project Roles](https://docs.couchbase.com/cloud/projects/project-roles.html).
    AWS:
      type: object
      properties:
        providerId:
          description: The ID of the VPC peer on AWS.
          type: string
          example: pcx-000000fff000fff
        AWSConfig:
          $ref: '#/components/schemas/AWSConfigData'
    AWSConfig:
      type: object
      required:
        - arn
      properties:
        arn:
          type: string
          description: The Amazon Resource Name (ARN) that uniquely identifies the AWS KMS key.
          example: arn:aws:kms:us-west-2:123456789012:key/abcd1234-a123-456a-a12b-a123b4cd56ef
    AWSConfigData:
      type: object
      required:
        - accountId
        - vpcId
        - region
        - cidr
      description: AWS config data required to establish a VPC peering relationship. Refer to the docs for other limitations to AWS VPC Peering - [ref](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-basics.html#vpc-peering-limitations).
      properties:
        accountId:
          type: string
          description: The numeric AWS Account ID or Owner ID.
          example: '00000011123'
        vpcId:
          type: string
          description: The alphanumeric VPC ID which starts with \"vpc-\". This is also known as the networkId.
          example: vpc-141f0fffff141aa00
        region:
          type: string
          description: The AWS region where your VPC is deployed.
          example: us-east-1
        cidr:
          type: string
          description: The AWS VPC CIDR block of network in which your application runs. This cannot overlap with your Capella CIDR Block.
          example: 10.0.0.0/16
    AZURE:
      type: object
      properties:
        providerId:
          description: The ID of the VNet peer on Azure.
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
        AzureConfig:
          $ref: '#/components/schemas/AzureConfigData'
    Access:
      type: object
      required:
        - privileges
      properties:
        privileges:
          type: array
          items:
            type: string
          description: |
            The `privileges` field in this API represents the privilege level for users.
            It accepts one of the following values:

            - `data_reader`
            - `data_writer`
            - `read`: Equivalent to `data_reader`.
            - `write`: Equivalent to `data_writer`.
          example:
            - data_reader
            - data_writer
            - read
            - write
        resources:
          type: object
          description: The resources for which access will be granted on. Leaving this empty will grant access to all buckets.
          properties:
            buckets:
              type: array
              items:
                $ref: '#/components/schemas/ResourceBucket'
    AccessFunction:
      type: string
      description: All mutations in this collection are processed by this Javascript function
      example: function(doc,oldDoc,meta){channel('collection name');}
    Actions:
      type: array
      description: Actions that can be performed on the language model.
      items:
        type: string
        enum:
          - deploy
          - delete
          - pause
          - resume
      example:
        - delete
    AllowedCidr:
      type: object
      required:
        - id
        - cidr
        - status
        - type
        - audit
      properties:
        id:
          type: string
          description: The ID of the allowed CIDR.
          example: ffffffff-aaaa-1414-eeee-000000000000
        cidr:
          type: string
          description: |
            The trusted CIDR to allow the database connections from. The example
            represents a single IP address (i.e. a subnet mask of 32).
          example: 1.23.45.67/32
        comment:
          type: string
          description: A short description of the allowed CIDR.
          example: Allows access from my local developer machine
        expiresAt:
          type: string
          description: |
            An RFC3339 timestamp determining when the allowed CIDR will expire.
            If this field is omitted then the allowed CIDR is permanent and will never automatically expire.
          format: date-time
          example: '2023-05-14T21:49:58.465Z'
        status:
          type: string
          description: The current status of the allowed CIDR.
          enum:
            - active
            - expired
          example: active
        type:
          type: string
          enum:
            - temporary
            - permanent
          default: permanent
          description: Whether the allowed CIDR is permanent or has an expiry.
          example: temporary
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    AppServiceAdminUser:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the user.
          example: ffffffff-aaaa-1414-eeee-000000000000
        tenantId:
          type: string
          readOnly: true
          description: The GUID4 ID of the tenant.
          example: ffffffff-aaaa-1414-eeee-000000000000
        projectId:
          type: string
          description: The GUID4 ID of the project.
          example: ffffffff-aaaa-1414-eeee-000000000000
        clusterId:
          type: string
          description: The GUID4 ID of the cluster.
          example: ffffffff-aaaa-1414-eeee-000000000000
        name:
          type: string
          description: The name of the user.
          example: user1
        endpoints:
          type: array
          description: The list of App Endpoints that the user has access to.
          example:
            - appEndpoint1
            - appEndpoint2
          items:
            type: string
        accessAllEndpoints:
          description: Give user access to all App Endpoints.
          type: boolean
          example: false
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    AppServiceAllowedCidr:
      type: object
      required:
        - id
        - cidr
        - status
        - type
        - audit
      properties:
        id:
          type: string
          description: The ID of the allowed CIDR.
          example: ffffffff-aaaa-1414-eeee-000000000000
        cidr:
          type: string
          description: |
            The trusted CIDR to allow network connections from. The example
            represents a single IP address (i.e. a subnet mask of 32).
          example: 1.23.45.67/32
        comment:
          type: string
          description: A short description of the allowed CIDR.
          example: Allows access from my local developer machine
        expiresAt:
          type: string
          description: |
            An RFC3339 timestamp determining when the allowed CIDR will expire.
            If this field is omitted then the allowed CIDR is permanent and will never automatically expire.
          format: date-time
          example: '2023-05-14T21:49:58.465Z'
        status:
          type: string
          description: The current status of the allowed CIDR.
          enum:
            - active
            - expired
          example: active
        type:
          type: string
          enum:
            - temporary
            - permanent
          default: permanent
          description: Whether the allowed CIDR is permanent or has an expiry.
          example: temporary
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    AppServiceCompute:
      type: object
      description: |
        The CPU and RAM configuration of the App Service. The supported combinations are:
        | CPU (cores)| RAM  (GB)   |
        | --------   |   -------   |
        | 2          | 4           |
        | 4          | 8           |
        | 8          | 16          |
        | 16         | 32          |
        | 36         | 72          |
      required:
        - cpu
        - ram
      properties:
        cpu:
          type: integer
          description: CPU units (cores).
          example: 2
        ram:
          type: integer
          description: RAM units (GB).
          example: 4
    AppServiceStates:
      type: string
      enum:
        - pending
        - deploying
        - deploymentFailed
        - destroying
        - destroyFailed
        - healthy
        - degraded
        - scaling
        - scaleFailed
        - upgrading
        - upgradeFailed
        - turnedOff
        - turningOff
        - turnOffFailed
        - turningOn
        - turnOnFailed
      example: deploying
    AuditFilterableEvent:
      type: object
      required:
        - description
        - id
        - module
        - name
      properties:
        description:
          type: string
          example: Document was mutated via the REST API
        id:
          type: integer
          format: int32
          example: 8243
        module:
          type: string
          example: ns_server
        name:
          type: string
          example: mutate document
    AuditLogEventsResponse:
      type: object
      properties:
        events:
          type: object
          description: A map of audit event IDs to their verbose details
          items:
            type: object
            properties:
              description:
                type: string
                description: Description of the audit event
              enabled:
                type: boolean
                description: Indicates if the audit event is enabled
              filterable:
                type: boolean
                description: Indicates if the audit event is filterable
              name:
                type: string
                description: Name of the audit event
          example:
            '53290':
              description: Admin API user successfully authenticated
              enabled: true
              filterable: true
              name: Admin API user authenticated
            '53292':
              description: Admin API user failed to authorize
              enabled: true
              filterable: true
              name: Admin API user authorization failed
    AuditSettingsDisabledUser:
      type: object
      properties:
        domain:
          type: string
          description: Specifies whether the user is local or external.
          example: local
        name:
          type: string
          description: The user name.
          example: dfelton
    AuditSettingsDisabledUsers:
      type: array
      description: List of users whose filterable events will not be logged.
      items:
        $ref: '#/components/schemas/AuditSettingsDisabledUser'
    Availability:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: Availability zone type, either 'single' or 'multi'. Availability zone type allowed for singleNode cluster is only 'single'.
          example: single
          enum:
            - single
            - multi
    AzureConfig:
      type: object
      required:
        - keyLocation
        - region
      properties:
        keyLocation:
          type: string
          description: The URL of the Azure key.
          example: https://my-vault.vault.azure.net/keys/my-key/846dec161545466586fd1f19849dd1ef
        region:
          type: string
          description: The region of the Azure key.
          example: eastus
    AzureConfigData:
      type: object
      required:
        - azureTenantId
        - subscriptionId
        - resourceGroup
        - vnetId
        - cidr
      description: Azure config data required to establish a VNet peering relationship. Refer to the docs for other limitations to Azure VNet Peering - [ref](https://learn.microsoft.com/en-us/azure/virtual-network/virtual-network-peering-overview#constraints-for-peered-virtual-networks)
      properties:
        azureTenantId:
          type: string
          description: The tenant ID. To find your tenant ID, see [How to find your Azure Active Directory tenant ID](https://learn.microsoft.com/en-us/entra/fundamentals/how-to-find-tenant).
          example: ffffffff-aaaa-1414-eeee-000000000000
        subscriptionId:
          type: string
          description: The subscription ID. To find your subscription ID, see [Find your Azure subscription](https://learn.microsoft.com/en-us/azure/azure-portal/get-subscription-tenant-id#find-your-azure-subscription).
          example: ffffffff-aaaa-1414-eeee-000000000000
        resourceGroup:
          type: string
          description: The resource group name holding the resource you’re connecting with Capella.
          example: sample-resource-group
        vnetId:
          description: The VNet ID is the name of the virtual network peering in Azure.
          type: string
          example: sample-vnet
        cidr:
          type: string
          description: The CIDR block from the virtual network that you created in Azure.
          example: 10.2.0.0/16
    BackupStats:
      description: Represents various backup level data that couchbase provides. To learn more, see [Backup Summary](https://docs.couchbase.com/cloud/clusters/manage-backup.html#backup-summary)
      type: object
      required:
        - cbas
        - event
        - fts
        - gsi
        - tombstones
        - mutations
        - items
        - sizeInMb
      properties:
        sizeInMb:
          type: number
          format: float
          description: Backup size in megabytes.
        items:
          type: integer
          description: The number of items saved during the backup.
          example: 150
        mutations:
          type: integer
          description: The number of mutations saved during the backup.
          example: 150
        tombstones:
          type: integer
          description: The number of tombstones saved during the backup.
          example: 4
        gsi:
          type: integer
          description: The number of global secondary indexes saved during the backup.
          example: 46
        fts:
          type: integer
          description: The number of full text search entities saved during the backup.
          example: 30
        cbas:
          type: integer
          description: The number of analytics entities saved during the backup.
          example: 30
        event:
          type: integer
          description: The number of event entities saved during the backup.
          example: 25
    BasicAuth:
      type: object
      required:
        - user
        - password
      properties:
        user:
          type: string
          description: Authentication username of the alert API (up to 1024 characters).
          example: username80085
          maxLength: 1024
        password:
          type: string
          description: Authentication password of the alert API (up to 1024 characters).
          example: yed69khj420_i
          maxLength: 1024
    BucketConflictResolution:
      type: string
      description: |
        The means by which conflicts are resolved during replication.

        - This field may be referred to as "conflict resolution" in the Couchbase documentation, and `seqno` and `lww` may be referred to as "sequence number" and "timestamp" respectively.

        - This field cannot be changed later.

         To learn more, see [Conflict Resolution](https://docs.couchbase.com/cloud/clusters/xdcr/xdcr.html#conflict-resolution).
      enum:
        - seqno
        - lww
      default: seqno
    BucketPriority:
      type: integer
      description: |
        Priority of the bucket.

        - Specify relative bucket priority so that buckets will be recovered in the order specified during failover.

        - Bucket ranking/priority is only available in Couchbase Server 7.6 and above

        - Default bucket priority is 0 and can be set to a value between 0 and 1000. 1000 is the highest priority and 0 is the lowest.
      default: 0
    CORSConfig:
      type: object
      required:
        - origin
      properties:
        origin:
          type: array
          description: List of allowed origins, use ['*'] to allow access from everywhere
          example:
            - http://example.com
            - http://staging.example.com
          items:
            type: string
        loginOrigin:
          type: array
          description: List of allowed login origins
          example:
            - http://example.com
          items:
            type: string
        headers:
          type: array
          description: List of allowed headers
          example:
            - Content-Type
          items:
            type: string
        maxAge:
          description: Specifies the duration (in seconds) for which the results of a preflight request can be cached.
          type: integer
          default: 5
        disabled:
          description: disable CORS
          example: false
          type: boolean
      example:
        origin:
          - http://example.com
          - http://staging.example.com
        loginOrigin:
          - http://example.com
        headers:
          - Content-Type
        maxAge: 600
        disabled: false
    Caching:
      type: object
      description: Caching configuration for the model. Caching improves system efficiency by caching frequently accessed data, both at the conversational level (storing request-specific conversation history) and at the semantic level (saving the embeddings for queries and results), ensuring optimal performance while managing memory costs effectively. Supports multiple caching strategies for improved response times and reduced strain on backend LLM services.
      properties:
        enableStandard:
          type: boolean
          description: Enables standard caching using exact match caching with SHA-256 hash of the prompt request/query as the document key. Returns cached response if hash matches, otherwise stores the new response with the SHA-256 hash as the key. Ideal for identical repeated requests.
          example: true
        enableConversational:
          type: boolean
          description: Enables conversational caching for maintaining conversation history and context for both standard and semantic caching strategies. This enables contextual session-based caching where conversation context (session topic) is stored along with either standard or semantic cache. Allows searching entire conversations for matches and can return all conversations for a given context/session or only specific matched responses. Essential for maintaining conversation history and context.
          example: false
        semantic:
          type: object
          description: Semantic caching configuration that enables similarity-based caching using Couchbase FTS vector search. Creates embeddings for prompt queries, performs vector search with configurable score threshold, and returns cached responses for semantically similar requests. Semantic caching is enabled by the presence of this object.
          properties:
            embeddingModel:
              type: string
              description: Specifies the embedding model deployed by the customer to use for generating vector embeddings. This model converts text queries into numerical vectors for semantic similarity matching in the cache.
              example: my-embedding-model-id
            scoreThreshold:
              type: number
              description: The threshold value for semantic similarity matching, should be > 0. Default is 0.75.
              example: 0.75
            dimensions:
              type: integer
              description: The vector dimensions for semantic caching.
              example: 4096
            distanceMetric:
              type: string
              description: The vector similarity metric used for semantic matching.
              example: dot_product
        defaultCache:
          type: string
          description: Specifies the primary caching strategy when multiple types are enabled. Choose 'standard' for exact SHA-256 hash matching or 'semantic' for vector similarity-based matching as the default behavior.
          example: semantic
          enum:
            - standard
            - semantic
        expiryTTL:
          type: integer
          description: Cache expiry time-to-live (TTL) in seconds. Determines how long cached responses, embeddings, and conversation context remain valid before being automatically removed from the cache store.
          example: 1000
    CapellaHostedModel:
      type: object
      required:
        - capellaHostedModel
      properties:
        capellaHostedModel:
          type: object
          required:
            - id
            - modelName
          properties:
            id:
              type: string
              description: The ID of the model hosted with Capella.
              example: 550e8400-e29b-41d4-a716-446655440000
            modelName:
              type: string
              description: The name of the model hosted with Capella.
              example: capella-hosted-model-31B
    CloudAccounts:
      type: object
      required:
        - gcp-capella-project
        - aws-capella-account
        - azure-capella-subscription
      properties:
        gcp-capella-project:
          type: string
          example: MyApp-Prod-Project
          description: The GCP project name.
        aws-capella-account:
          type: string
          example: MyApp-Prod-Project
          description: The AWS account ID.
        azure-capella-subscription:
          type: string
          example: MyApp-Prod-Project
          description: The Azure subscription name.
    CloudConfig:
      type: object
      required:
        - provider
        - region
        - compute
      description: The cloud configuration for the model.
      properties:
        provider:
          type: string
          description: The cloud service provider where the model will be deployed. Currently only AWS is supported.
          enum:
            - aws
            - gcp
            - azure
          example: aws
        region:
          type: string
          description: Cloud provider region, for example `us-west-2`.
          example: us-east-1
        compute:
          type: object
          required:
            - cpu
            - gpuMemory
          description: Type of the compute on which the model is deployed.
          properties:
            cpu:
              type: integer
              format: int32
              description: The number of cpu vCPUs. For AWS instances g6.xlarge, g6e.xlarge use 4 vCPUs, and for p3.8xlarge use 32 vCPUs.
              enum:
                - 4
                - 32
              example: 4
            gpuMemory:
              type: integer
              description: The memory in GB for the GPU. For AWS instance g6.xlarge use 24 GB GPU Memory, for g6e.xlarge use 48 GB GPU Memory, and for g6e.12xlarge use 192 GB RAM.
              enum:
                - 24
                - 48
                - 192
              example: 48
    CloudProvider:
      type: object
      description: |
        The cloud provider where the cluster will be hosted.
        For information about providers and supported regions, see:

        - [Amazon Web Services](https://docs.couchbase.com/cloud/reference/aws.html)

        - [Google Cloud Platform](https://docs.couchbase.com/cloud/reference/gcp.html)

        - [Microsoft Azure](https://docs.couchbase.com/cloud/reference/azure.html)
      required:
        - type
        - region
      properties:
        type:
          type: string
          description: |
            Cloud provider type. Note: For singleNode cluster, only AWS type cloud provider is allowed.

            1. `aws`: Amazon Web Services

            2. `gcp`: Google Cloud Platform

            3. `azure`: Microsoft Azure
          enum:
            - aws
            - gcp
            - azure
          example: aws
        region:
          type: string
          description: Cloud provider region, for example `us-west-2`.
          example: us-east-1
        cidr:
          type: string
          pattern: ^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$
          description: CIDR block for Cloud Provider.
          example: 10.1.30.0/23
    CloudSnapshotBackupCrossRegionCopies:
      type: object
      properties:
        regionCode:
          type: string
        status:
          type: string
        time:
          type: string
          format: date-time
    CloudSnapshotBackupProgress:
      type: object
      properties:
        status:
          type: string
        time:
          type: string
          format: date-time
    CloudSnapshotGeographicRegions:
      type: array
      required:
        - items
      items:
        type: string
        example: us-east-1
      example:
        - af-south-1
        - ap-east-1
        - ap-northeast-1
        - ap-northeast-2
        - ap-south-1
        - ap-south-2
        - ap-southeast-1
        - ap-southeast-2
        - ap-southeast-3
        - ap-southeast-4
        - ca-central-1
        - eu-central-1
        - eu-central-2
        - eu-north-1
        - eu-south-1
        - eu-west-1
        - eu-west-2
        - eu-west-3
        - il-central-1
        - me-central-1
        - me-south-1
        - sa-east-1
        - us-east-1
        - us-east-2
        - us-west-2
    ClusterCMEKConfig:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          description: UUID of the customer managed encryption key.
          example: ffffffff-aaaa-1414-eeee-000000000000
        providerId:
          type: string
          description: ProviderId is the ID of the customer managed encryption key as stored by the cloud provider.
          example: arn:aws:kms:us-west-1:123456789012:key/abcd1234-a123-456a-a12b-a123b4cd56ef
    ClusterOnOffSchedule:
      description: Cluster schedule on/off .
      type: object
      required:
        - timezone
        - days
      properties:
        timezone:
          $ref: '#/components/schemas/onOffTimezone'
        days:
          type: array
          items:
            $ref: '#/components/schemas/Days'
          example:
            - day: monday
              state: custom
              from:
                hour: 12
                minute: 30
              to:
                hour: 14
                minute: 30
            - day: tuesday
              state: custom
              from:
                hour: 12
                minute: 30
              to:
                hour: 14
                minute: 30
            - day: wednesday
              state: 'on'
            - day: thursday
              state: 'on'
            - day: friday
              state: custom
              from:
                hour: 12
                minute: 30
              to:
                hour: 14
                minute: 30
            - day: saturday
              state: 'off'
            - day: sunday
              state: 'off'
    ClusterStats:
      type: object
      description: Cluster-level statistics including memory and replica information.
      required:
        - freeMemoryInMb
        - totalMemoryInMb
        - maxReplicas
      properties:
        freeMemoryInMb:
          type: integer
          description: The amount of free data memory left after accounting for all Couchbase bucket data allocations.
          example: 640
        totalMemoryInMb:
          type: integer
          description: The total amount of data memory available in the cluster for bucket allocations.
          example: 1040
        maxReplicas:
          type: integer
          description: The maximum number of replicas available for bucket configuration. This is typically n-1 where n is the number of data nodes in the cluster.
          example: 2
    Collection:
      type: object
      properties:
        name:
          type: string
          description: Name of the collection.
          example: airport
        maxTTL:
          type: integer
          description: Max TTL of the collection.
    CollectionConfig:
      type: object
      properties:
        accessControlFunction:
          type: string
          example: function(doc){channel("collection name");}
          description: |
            The Javascript function that is used to specify the access control policies to be applied to documents in this collection.
            Every document update is processed by this function. The default access control function is 'function(doc){channel(doc.channels);}'
            for the default collection and 'function(doc){channel(collectionName);}' for named collections.
        importFilter:
          type: string
          example: function(doc) { if (doc.type != 'mobile') { return false; } return true; }
          description: The Javascript function used to specify the documents in this collection that are to be imported by the App Endpoint. By default, all documents in corresponding collection are imported.
    CollectionsConfig:
      type: object
      description: The collection config, defining Access control and validation functions and import filters for this collection. The key to the collection config object is the name of the collection.
      additionalProperties:
        $ref: '#/components/schemas/CollectionConfig'
    ColumnarAnalyticsBackupProgress:
      type: object
      properties:
        status:
          type: string
          description: The status of the backup.
        time:
          type: string
          format: date-time
          description: The time the backup was created.
    ColumnarAnalyticsOnOffSchedule:
      description: Columnar schedule on/off
      type: object
      required:
        - timezone
        - days
      properties:
        timezone:
          type: string
          description: Timezone for the schedule
          enum:
            - Pacific/Midway
            - US/Hawaii
            - US/Alaska
            - US/Pacific
            - US/Mountain
            - US/Central
            - US/Eastern
            - America/Puerto_Rico
            - Canada/Newfoundland
            - America/Argentina/Buenos_Aires
            - Atlantic/Cape_Verde
            - Europe/London
            - Europe/Amsterdam
            - Europe/Athens
            - Africa/Nairobi
            - Asia/Tehran
            - Indian/Mauritius
            - Asia/Karachi
            - Asia/Calcutta
            - Asia/Dhaka
            - Asia/Bangkok
            - Asia/Hong_Kong
            - Asia/Tokyo
            - Australia/North
            - Australia/Sydney
            - Pacific/Ponape
            - Antarctica/South_Pole
          example: US/Pacific
        days:
          type: array
          items:
            $ref: '#/components/schemas/Days'
          example:
            - day: monday
              state: custom
              from:
                hour: 12
                minute: 30
              to:
                hour: 14
                minute: 30
            - day: tuesday
              state: custom
              from:
                hour: 12
                minute: 30
              to:
                hour: 14
                minute: 30
            - day: wednesday
              state: 'on'
            - day: thursday
              state: 'on'
            - day: friday
              state: custom
              from:
                hour: 12
                minute: 30
              to:
                hour: 14
                minute: 30
            - day: saturday
              state: 'off'
            - day: sunday
              state: 'off'
    ColumnarSupport:
      type: object
      required:
        - plan
        - timezone
      properties:
        plan:
          type: string
          description: Plan type, 'Developer Pro', or 'Enterprise'.
          enum:
            - developer pro
            - enterprise
          example: enterprise
        timezone:
          type: string
          description: The standard timezone for the cluster. Should be the TZ identifier.
          example: ET
          enum:
            - ET
            - GMT
            - IST
            - PT
    Compute:
      type: object
      description: |-
        Following are the supported compute combinations for CPU and RAM for different cloud providers.
        To learn more, see [Amazon Web Services](https://docs.couchbase.com/cloud/reference/aws.html).
      required:
        - cpu
        - ram
      properties:
        cpu:
          type: integer
          description: CPU units (cores).
          example: 4
        ram:
          type: integer
          description: RAM units (GB).
          example: 16
    Config:
      type: object
      description: Contains all the model information.
      properties:
        catalogModelName:
          type: string
          description: Name of the model deployed from the model catalog.
          example: meta-llama/Llama-3.1-8B-Instruct
        type:
          type: string
          description: The kind of model.
          enum:
            - text-generation
            - embedding-generation
            - moderation
            - prompt-injection
        provider:
          type: string
          description: The provider of the model.
          enum:
            - meta
            - nvidia
          example: meta
        quantization:
          type: string
          description: Quantization options for the model. Options include 8-bit, 16bit, and full-precision.
          enum:
            - fp8
            - fp16
            - fullPrecision
          example: fullPrecision
        optimization:
          type: string
          description: Optimization profile option for the model.
          enum:
            - throughput
            - latency
          example: latency
        dimensions:
          type: integer
          description: Dimensions specifies the number of dimensions for the embedding vectors. This field is only present     and relevant when the underlying model is an embedding model.
          example: 4096
        caching:
          $ref: '#/components/schemas/Caching'
        enableBatching:
          type: boolean
          description: Enables batch processing to provide cost savings and improved efficiency for users making multiple similar large volume requests. When enabled, the system groups requests together and processes them in bulk, resulting in lower inference costs and better resource utilization. Note that batching is good for processing large volumes of requests asynchronously, but it can have delayed results (no streaming), lack of real-time feedback, limited debugging visibility, and a longer turnaround time, hence unsuitable for latency-sensitive use cases. Users can check the status of their batches or cancel an ongoing batch using the AI gateway APIs for batching.
          example: true
        keywordFiltering:
          type: array
          description: Keywords in a comma-separated string to filter the input.
          items:
            type: string
          example:
            - harassment
            - murder
    ConfigurationType:
      deprecated: true
      type: string
      description: |
        - Multi-node databases are best for deployments that require high availability. If your app requires high performance and high availability, choose the Multi-node option.
        - Single-node databases have resource limitations that make them a good choice for learning, prototyping, and non-production uses. They have limited availability.
        - Single-node databases should contain only 1 node and 1 Service Group. Adding number of nodes or service groups > 1 is not allowed for such databases.
        - By default the configurationType is multiNode.
      enum:
        - singleNode
        - multiNode
      default: multiNode
      example: multiNode
    ConsoleLoggingConfig:
      type: object
      required:
        - logLevel
        - logKeys
      properties:
        logLevel:
          type: string
          enum:
            - info
            - warn
            - error
          example: error
          description: Controls the verbosity of logs based on the specified log level
        logKeys:
          type: array
          items:
            type: string
            enum:
              - Admin
              - Access
              - Auth
              - Cache
              - Changes
              - CRUD
              - HTTP
              - HTTP+
              - Import
              - Javascript
              - Query
              - Sync
              - SyncMsg
          description: Filter logs to specific log keys
          example:
            - HTTP
            - Query
            - Sync
      example:
        logLevel: warn
        logKeys:
          - HTTP
          - Import
          - Sync
    CouchbaseAuditData:
      type: object
      required:
        - createdBy
        - createdAt
        - modifiedBy
        - modifiedAt
        - version
      properties:
        createdBy:
          type: string
          description: |
            The user who created the resource; this will be a UUID4 ID for standard
            users and will be a string such as "internal-support" for internal
            Couchbase support users.
          example: ffffffff-aaaa-1414-eeee-000000000000
        createdAt:
          type: string
          format: date-time
          description: |
            The RFC3339 timestamp associated with when the resource was initially
            created.
          example: '2021-09-01T12:34:56Z'
        modifiedBy:
          type: string
          description: |
            The user who last modified the resource; this will be a UUID4 ID for
            standard users and wilmal be a string such as "internal-support" for
            internal Couchbase support users.
          example: ffffffff-aaaa-1414-eeee-000000000000
        modifiedAt:
          type: string
          format: date-time
          description: |
            The RFC3339 timestamp associated with when the resource was last modified.
          example: '2021-09-01T12:34:56Z'
        version:
          type: integer
          description: |
            The version of the document. This value is incremented each time the
            resource is modified.
          example: 1
    CouchbaseKeyspace:
      type: object
      required:
        - bucket
        - scope
        - collection
      properties:
        bucket:
          type: string
          description: The name of the target bucket for the workflow.
          example: my-bucket
        scope:
          type: string
          description: The name of the target scope for the workflow.
          example: my-scope
        collection:
          type: string
          description: The name of the target collection for the workflow.
          example: my-collection
    CouchbaseServer:
      type: object
      properties:
        version:
          type: string
          description: Version of the Couchbase Server to be installed in the cluster. Refer to documentation [here](https://docs.couchbase.com/cloud/clusters/upgrade-database.html#server-version-maintenance-support) for list of supported versions. The latest Couchbase Server version will be deployed by default.
          example: '7.1'
    CreateAPIKeyRequest:
      type: object
      required:
        - name
        - organizationRoles
      properties:
        name:
          $ref: '#/components/schemas/APIKeyName'
        description:
          $ref: '#/components/schemas/APIKeyDescription'
        expiry:
          $ref: '#/components/schemas/APIKeyExpiry'
        allowedCIDRs:
          $ref: '#/components/schemas/APIKeyAllowedCIDRs'
        organizationRoles:
          type: array
          items:
            $ref: '#/components/schemas/APIKeyOrganizationRoles'
        resources:
          $ref: '#/components/schemas/APIKeyResources'
    CreateAPIKeyResponse:
      type: object
      required:
        - id
        - token
      properties:
        id:
          $ref: '#/components/schemas/APIKeyId'
        token:
          $ref: '#/components/schemas/Token'
    CreateAlertRequest:
      type: object
      required:
        - kind
        - name
        - config
      properties:
        kind:
          type: string
          description: Type of alert integration, currently supports only 'webhook'.
          example: webhook
          enum:
            - webhook
        name:
          type: string
          description: Name of the alert integration (up to 1024 characters).
          example: test alert 1
          maxLength: 1024
        config:
          $ref: '#/components/schemas/RequestConfig'
    CreateAlertResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the alert integration created.
    CreateAllowedCidrRequest:
      type: object
      required:
        - cidr
      properties:
        cidr:
          type: string
          description: |
            The trusted CIDR to allow the database connections from. The example
            represents a single IP address (i.e. a subnet mask of 32).
          example: 6.60.28.100/32
        comment:
          type: string
          description: A short description of the allowed CIDR.
          example: Allows access from my local developer machine
        expiresAt:
          type: string
          format: date-time
          description: |
            An RFC3339 timestamp determining when the allowed CIDR should expire.
            If this field is empty/omitted then the allowed CIDR is permanent and will never automatically expire.
          example: '2023-05-14T21:49:58.465Z'
    CreateAllowedCidrResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the allowed CIDR.
    CreateAppEndpointRequest:
      type: object
      required:
        - name
        - bucket
      properties:
        bucket:
          type: string
          example: store_locations
          description: The Capella Cluster backing bucket for the App Endpoint.
        oidc:
          description: OpenID Connect provider configuration.
          type: array
          items:
            $ref: '#/components/schemas/OIDCProvider'
        cors:
          description: Cross-Origin Resource Sharing (CORS) configuration, used to enable granular access control to trusted domains for Origin and Login purposes in browser-based and hybrid applications.
          $ref: '#/components/schemas/CORSConfig'
        scopes:
          $ref: '#/components/schemas/ScopesConfig'
        name:
          type: string
          description: App Endpoint name. Must be less than 228 characters. It can only contain lowercase letters, numbers, or the following characters `-_$+()`
          example: appEndpoint1
        deltaSyncEnabled:
          type: boolean
          default: false
          description: Enable/disable delta sync
        userXattrKey:
          type: string
          example: syncFnXattr
          description: The key of the user-extended attributes (xattr) that will be accessible from the Access control and validation function. If left empty, the feature will be disabled.
        disablePublicAllDocs:
          type: boolean
          default: false
          description: Disable the `_all_docs` endpoint for this App Endpoint on the App Services Public API.
    CreateAppServiceAdminUserRequest:
      type: object
      required:
        - name
        - password
        - access
      properties:
        name:
          type: string
          description: The name of the user.
          example: admin
        password:
          type: string
          description: The password of the user.
          example: password
        enableBucketLevelAccess:
          type: boolean
          description: |
            When set to true, the user will automatically be granted admin access to all App Endpoints in a bucket (that is currently associated with the App Endpoint(s) specified in the endpoints field), including ones that are created in future.
            The flag defaults to true. Currently, the only supported value is true, which means that the user will have admin access to all App Endpoints in this bucket.
            In the future, there will be the option to set this to false.
          default: true
        access:
          oneOf:
            - $ref: '#/components/schemas/UpdateAppServiceAdminUserAllEndpointsRequest'
            - $ref: '#/components/schemas/UpdateAppServiceAdminUserEndpointList'
    CreateAppServiceAdminUserResponse:
      type: object
      properties:
        id:
          description: The ID of the user
          type: string
      example:
        id: eeeeeeee-aaaa-1414-eeee-999999999999
    CreateAppServiceAuditLogRequest:
      type: object
      required:
        - auditEnabled
      properties:
        auditEnabled:
          type: boolean
          description: Determines whether audit logging is enabled or not on the App Service.
    CreateAppServicerRequest:
      type: object
      required:
        - clusterId
        - name
      properties:
        name:
          type: string
          description: Name of the cluster (up to 256 characters).
          example: MyAppSyncService
          maxLength: 256
        description:
          type: string
          description: A short description of the App Service.
          example: My app sync service.
        nodes:
          type: integer
          description: Number of nodes configured for the App Service. Number of nodes configured for the App Service. The number of nodes can range from 2 to 12.
          example: 2
        compute:
          $ref: '#/components/schemas/AppServiceCompute'
        version:
          type: string
          description: The version of the App Service server. If left empty, it will be defaulted to the latest available version.
          example: '3.0'
    CreateAppServicesResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the App Service created.
    CreateAzurePrivateEndpointCommandRequest:
      type: object
      required:
        - resourceGroupName
        - virtualNetwork
      properties:
        resourceGroupName:
          type: string
          minLength: 1
          maxLength: 90
          description: The name of your resource group
          example: test-rg
        virtualNetwork:
          type: string
          minLength: 2
          maxLength: 64
          description: The virtual network and subnet name
          example: vnet-1/subnet-1
    CreateBedrockConfigurationRequest:
      type: object
      required:
        - accessKeyId
        - secretAccessKey
      properties:
        accessKeyId:
          type: string
          description: The access key ID to access AWS Bedrock.
        secretAccessKey:
          type: string
          description: The secret access key to access AWS Bedrock.
    CreateBucketRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: |
            Name of the bucket. This field cannot be changed later. The name should adhere to the following rules:

            1. Characters used for the name should be in the ranges of A-Z, a-z, and 0-9; plus the underscore, period, dash, and percent characters.

            2. The name can be a maximum of 100 characters in length.

            3. The name cannot have 0 characters or empty. Minimum length of name is 1.

            4. The name cannot start with a `.` (period).
          maxLength: 100
          example: My-First-Bucket
        type:
          $ref: '#/components/schemas/Type'
        storageBackend:
          $ref: '#/components/schemas/StorageBackend'
        vbuckets:
          type: integer
          enum:
            - 128
            - 1024
          description: |
            This field only applies to Couchbase Server 8.0 and above for magma buckets.

            There are two options for the number of vBuckets: 128 and 1024. The number of vBuckets cannot be changed after the bucket is created.
          example: 128
          default: 128
        memoryAllocationInMb:
          type: integer
          description: |
            The amount of memory to allocate for the bucket memory in MiB. This is the maximum limit is dependent on the allocation of the KV service. For example, 80% of the allocation.

            - For Couchbase buckets, the default and minimum memory allocation changes according to the Storage Backend type as follows:

              1. For Couchstore, the default and minimum memory allocation is 100 MiB.

              2. For Magma, the default and minimum memory allocation is 1024 MiB with 1024 buckets for Couchbase server below 8.0. 
                 The default and minimum memory allocation is 100 MiB with 128 vbuckets for Couchbase server version 8.0 and above.

            - For Ephemeral buckets, the default and minimum memory allocation is 100 MiB.
          example: 100
        bucketConflictResolution:
          $ref: '#/components/schemas/BucketConflictResolution'
        durabilityLevel:
          $ref: '#/components/schemas/DurabilityLevel'
        replicas:
          $ref: '#/components/schemas/Replicas'
        flush:
          type: boolean
          description: |
            Replaced by flushEnabled. This property is deprecated and will be removed in a future release.

            Determines whether flushing is enabled on the bucket. Enable Flush to delete all items in this bucket at the earliest opportunity. Disable Flush to avoid inadvertent data loss.
          default: false
          example: false
          deprecated: true
        flushEnabled:
          type: boolean
          description: Determines whether bucket flush is enabled. Set flushEnabled to true to be able to delete all items in this bucket using the /flush endpoint. Disable flushEnabled to avoid inadvertent data loss by calling the /flush endpoint .
          default: false
          example: false
        timeToLiveInSeconds:
          type: integer
          description: Specify the time to live (TTL) value in seconds. This is the maximum time to live for items in the bucket. Default is 0, that means TTL is disabled. This is a non-negative value.
          default: 0
          example: 0
        evictionPolicy:
          $ref: '#/components/schemas/EvictionPolicy'
        priority:
          $ref: '#/components/schemas/BucketPriority'
    CreateBucketResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          example: dGVzdA
          description: The ID of the bucket. This is the base64 encoding of the bucket name.
    CreateCMEKAzureMetadata:
      type: object
      required:
        - name
        - config
      properties:
        name:
          type: string
          description: Name of the key.
          example: Test Key
          maxLength: 256
        description:
          type: string
          description: Description of the key.
          example: Description of the Key
          maxLength: 1024
        config:
          $ref: '#/components/schemas/AzureConfig'
    CreateCMEKMetadata:
      type: object
      required:
        - name
        - config
      properties:
        name:
          type: string
          description: Name of the key (up to 256 characters).
          example: Test Key
          maxLength: 128
        description:
          type: string
          description: Description of the key (up to 1024 characters).
          example: Description of the Key
          maxLength: 512
        config:
          oneOf:
            - $ref: '#/components/schemas/AWSConfig'
            - $ref: '#/components/schemas/GCPConfig'
            - $ref: '#/components/schemas/AzureConfig'
    CreateCMEKMetadataResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the KMS metadata created.
    CreateCloudSnapshotBackupRequest:
      type: object
      properties:
        retention:
          type: integer
          description: Represents interval in hours to retain the backup.
          example: 168
        regionsToCopy:
          type: array
          items:
            type: string
          description: |
            Specifies the regions where the backup will be copied. A maximum of two regions can be selected.
            If not provided, the backup will remain single-region.
          example:
            - us-west-1
            - us-east-1
    CreateCloudSnapshotBackupResponse:
      type: object
      properties:
        backupId:
          type: string
          example: 53b504e2-3f1e-4601-9e44-c04aa0195057
          description: |
            The id is a unique identifier for a backup.
    CreateCloudSnapshotCloneRequest:
      type: object
      required:
        - name
        - cloudProvider
        - availability
        - support
      properties:
        name:
          type: string
          description: Name of the cloned cluster (up to 256 characters).
          example: Test Clone Cluster
          maxLength: 256
        description:
          type: string
          description: Description of the cloned cluster (up to 1024 characters).
          example: This is a cloned cluster.
          maxLength: 1024
        cloudProvider:
          $ref: '#/components/schemas/CloudProvider'
        availability:
          $ref: '#/components/schemas/Availability'
        support:
          $ref: '#/components/schemas/Support'
        zones:
          description: Zones is the cloud services provider availability zones for the cloned cluster. Currently Supported only for single AZ clusters so only 1 zone is allowed in list.
          type: array
          example:
            - use1-az1
          items:
            type: string
    CreateCloudSnapshotCloneResponse:
      type: object
      properties:
        restoreId:
          $ref: '#/components/schemas/RestoreId'
        clusterId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: |
            The id is a unique identifier for a cluster.
    CreateCloudSnapshotRestoreRequest:
      type: object
      properties:
        crossRegionRestorePreference:
          type: array
          description: |
            Defines the priority order of cross-regional cloud snapshots, based on the index of the array, to be used as a fallback for cluster restoration when the primary backup in the cluster's region is not restorable. The first region in the list is assigned the highest priority, followed by each subsequent region in order.
          items:
            type: string
          example:
            - us-east-1
            - ap-southeast-4
          uniqueItems: true
    CreateCloudSnapshotRestoreResponse:
      type: object
      properties:
        restoreId:
          $ref: '#/components/schemas/RestoreId'
    CreateClusterAuditLogExportRequest:
      type: object
      required:
        - start
        - end
      properties:
        start:
          type: string
          format: date-time
          description: Specifies the audit log's start date and time.
          example: '2023-05-15T04:56:07.000+00:00'
        end:
          type: string
          format: date-time
          description: Specifies the audit log's end date and time.
          example: '2023-05-16T04:56:07.000+00:00'
    CreateClusterAuditLogExportResponse:
      type: object
      required:
        - exportId
      properties:
        exportId:
          type: string
          description: The export ID of the export job.
          example: ffffffff-aaaa-1414-eeee-000000000000
    CreateClusterAuditSettingsRequest:
      type: object
      required:
        - auditEnabled
        - disabledUsers
        - enabledEventIDs
      properties:
        auditEnabled:
          type: boolean
          description: Determines whether audit logging is enabled or not on the cluster.
          example: true
        disabledUsers:
          $ref: '#/components/schemas/AuditSettingsDisabledUsers'
        enabledEventIDs:
          type: array
          description: List of enabled filterable audit events for the cluster.
          items:
            type: integer
            format: int32
            example:
              - 8243
              - 8255
    CreateClusterOnRequest:
      type: object
      properties:
        turnOnLinkedAppService:
          type: boolean
          description: |
            Set this value to true if you want to turn on the app service linked with the cluster, false if not.
            If set to true, the app service, if present, will turn on with the cluster.
            Default value for this is false, which means the linked app service will be kept off.
          default: false
    CreateClusterRequest:
      type: object
      required:
        - name
        - cloudProvider
        - serviceGroups
        - availability
        - support
      properties:
        name:
          type: string
          description: Name of the cluster (up to 256 characters).
          example: Test Cluster
          maxLength: 256
        description:
          type: string
          description: Description of the cluster (up to 1024 characters).
          example: Description of the cluster
          maxLength: 1024
        configurationType:
          $ref: '#/components/schemas/ConfigurationType'
        cloudProvider:
          $ref: '#/components/schemas/CloudProvider'
        couchbaseServer:
          $ref: '#/components/schemas/CouchbaseServer'
        serviceGroups:
          type: array
          description: The couchbase service groups to be run. - The set of nodes that share the same disk, number of nodes and services. - At least one service group must contain the data service.
          minItems: 1
          items:
            $ref: '#/components/schemas/ServiceGroup'
        availability:
          $ref: '#/components/schemas/Availability'
        support:
          $ref: '#/components/schemas/Support'
        zones:
          description: Zones is the cloud services provider availability zones for the cluster. Currently Supported only for single AZ clusters so only 1 zone is allowed in list.
          type: array
          example:
            - use1-az1
          items:
            type: string
        cmekId:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the CMEK Key.
        enablePrivateDNSResolution:
          type: boolean
          description: EnablePrivateDNSResolution signals that the cluster should have hostnames that are hosted in a public DNS zone that resolve to a private DNS address. This exists to support the use case of customers connecting from their own data centers where it is not possible to make use of a cloud service provider DNS zone.
          example: true
    CreateClusterResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the cluster created.
    CreateCollectionRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: |
            The name of the collection. The name should adhere to the following rules:

            1. The name must be between 1 and 251 characters in length.

            2. The name can contain only the characters A-Z, a-z, 0-9, and the symbols _, -, and %.

            3. The name cannot start with _ or %.

            Note that scope and collection names are case-sensitive.
          example: my-collection
        maxTTL:
          type: integer
          description: Specify the time to live (TTL) value in seconds. Defines the duration (Seconds) for which the documents in a collection are kept before automatic removal from the database. -  For server versions < 7.6.0, this is a non-negative value. Set to 0 to use the bucket's maxTTL value. -  For server versions >= 7.6.0, this value should be >= -1. Set to -1 to disable expiry for that collection. Set to 0 to use the bucket's maxTTL value. -  The maximum value that can be set for maxTTL is 2147483647.
          example: 100
    CreateColumnarAnalyticsBackupRequest:
      type: object
      properties:
        retention:
          type: integer
          description: Represents interval in hours to retain the backup.
          example: 168
    CreateColumnarAnalyticsBackupResponse:
      type: object
      properties:
        backupId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: |
            The unique identifier for a backup.
    CreateColumnarAnalyticsClusterRequest:
      description: Create an analytics cluster
      required:
        - name
        - cloudProvider
        - region
        - nodes
        - support
        - compute
        - availability
      type: object
      properties:
        name:
          type: string
          example: My-first-analytics-cluster
          description: Name of the analytics cluster
          maxLength: 256
        description:
          type: string
          example: I won him in a game of hook a duck at a carnival
          description: The description of the analytics cluster.
          maxLength: 1024
        cloudProvider:
          type: string
          example: aws
          description: |
            Cloud provider selection

            1. `aws`: Amazon Web Services

            2. `gcp`: Google Cloud Platform
          enum:
            - aws
            - gcp
        region:
          type: string
          example: us-east-2
          description: Which region should the analytics cluster be deployed in.
        nodes:
          type: integer
          example: 2
          description: The number of nodes.
          minimum: 1
          maximum: 32
        support:
          $ref: '#/components/schemas/ColumnarSupport'
        compute:
          $ref: '#/components/schemas/Compute'
        availability:
          $ref: '#/components/schemas/Availability'
    CreateColumnarAnalyticsClusterResponse:
      description: Create an analytics cluster
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The UUID of the analytics cluster created.
    CreateColumnarAnalyticsRestoreResponse:
      type: object
      properties:
        restoreId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: |
            The id is a unique identifier for a restore.
    CreateDatabaseCredentialRequest:
      type: object
      required:
        - name
        - access
      properties:
        name:
          type: string
          description: |
            Username for the database credential. The name should adhere to the following rules:

            1. The name must be between 2 & 128 characters.

            2. The name cannot contain spaces.

            3. The name cannot contain the following characters - `) ( > < , ; : " \ / ] [ ? = } {`

            4. The name cannot begin with `@` character.
          example: RW
          maxLength: 128
          minLength: 2
        password:
          type: string
          description: |
            A password associated with the database credential. If this field is left empty, a password will be auto-generated.

            - The password should adhere to the following rules:

              1. The password should have at least 8 characters.

              2. Characters used for the password should contain at least one uppercase (A-Z), one lowercase (a-z), one numerical (0-9), and one special character.

              3. The password must not contain any of the following characters: `< > ; . * & | £`
          example: Passw0rd!
          minLength: 8
        access:
          type: array
          description: Describes the access information of the database credential.
          items:
            $ref: '#/components/schemas/Access'
    CreateDatabaseCredentialResponse:
      type: object
      required:
        - id
        - password
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the database credential created.
        password:
          type: string
          description: A password associated with the database credential. Password will have a minimum length of 8 characters and contain at least one lowercase letter, one uppercase letter, one number, and one special character.
          example: P@ssw0rd!
    CreateFreeTierAppServiceRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: Name of App Service.
          example: MyAppSyncService
          maxLength: 256
        description:
          type: string
          description: A short description of the App Service.
          example: My app sync service.
          maxLength: 256
    CreateFreeTierBucketRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: |
            Name of the bucket. This field cannot be changed later. The name should adhere to the following rules:

            1. Characters used for the name should be in the ranges of A-Z, a-z, and 0-9; plus the underscore, period, dash, and percent characters.

            2. The name can be a maximum of 100 characters in length.

            3. The name cannot have 0 characters or empty. Minimum length of name is 1.

            4. The name cannot start with a `.` (period).
          maxLength: 100
          example: Free-Tier-Bucket
        memoryAllocationInMb:
          type: integer
          description: |
            The bucket memory quota. It defaults to 100 MiB.
          example: 200
          default: 100
    CreateFreeTierClusterRequest:
      type: object
      required:
        - name
        - cloudProvider
      properties:
        name:
          type: string
          description: Name of the cluster (up to 256 characters).
          example: A Free Tier Cluster
          maxLength: 256
        description:
          type: string
          description: Description of the cluster (up to 1024 characters).
          example: Description of the cluster
          maxLength: 1024
        cloudProvider:
          $ref: '#/components/schemas/CloudProvider'
    CreateGCPPrivateEndpointCommandRequest:
      type: object
      required:
        - vpcNetworkID
        - subnetIDs
      properties:
        vpcNetworkID:
          type: string
          minLength: 12
          maxLength: 21
          description: The ID of your vpc network in gcp
          example: vpcNetwork-1234
        subnetIDs:
          type: array
          items:
            type: string
          example:
            - subnet-1234
    CreateLanguageModelAPIKeyRequest:
      type: object
      required:
        - name
        - expiry
        - allowedCIDRs
        - region
      properties:
        name:
          type: string
          description: Name of the Language Model API Key.
          example: MyLanguageModelAPIKey
          maxLength: 128
        description:
          type: string
          description: Description of the Language Model API Key.
          example: API key for accessing GPT-4 models
          maxLength: 250
        expiry:
          type: number
          format: float
          description: Expiry of the API key in number of days. Maximum value is 365 days.
          example: 180
        allowedCIDRs:
          type: array
          description: List of IP addresses or CIDR blocks that are allowed to use this API key.
          items:
            type: string
            example: 192.168.1.0/24
          example:
            - 192.168.1.0/24
            - 10.0.0.0/8
        allowedModels:
          type: array
          description: |
            List of allowed model IDs for this API key.
            - If empty or omitted, defaults to "*" (all models in the region).
            - Can be set to ["*"] explicitly for all models.
            - Can contain specific model IDs to restrict access to those models only.
          items:
            type: string
          example:
            - 5ca127fe-49da-4a6a-aef9-08393b97643f
            - 6db238gf-50eb-5b7b-bfg0-09404c08754g
          default:
            - '*'
        region:
          type: string
          description: The region where the API key will be created. The apikey created in a region can access all the models available in that region.
          example: us-east-1
    CreateLanguageModelAPIKeyResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the Model API key.
          example: 60a95d98-8660-488c-a1e0-25b90e926a1e
        token:
          type: string
          description: Generated API key token (only returned during creation).
          example: cb_api_sk_1234567890abcdef
    CreateLanguageModelResponse:
      type: object
      description: Response for language model creation request.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the created language model.
          example: fffffffff-aaaa-1414-eeee-000000000000
    CreateNetworkPeeringRequest:
      type: object
      required:
        - name
        - providerConfig
        - providerType
      properties:
        name:
          description: Name of the peering relationship. -  The name of the peering relationship must be at least 2 characters long. -  The name can not exceed 128 characters.
          type: string
          example: VPCPeerTest
        providerType:
          type: string
          description: Type of the cloud provider for which the peering connection is created. Which are- 1. aws 2. gcp 3. azure
          example: aws
        providerConfig:
          description: |
            The config data for a peering relationship for a cluster on AWS, GCP, or Azure.
          oneOf:
            - $ref: '#/components/schemas/AWSConfigData'
            - $ref: '#/components/schemas/GCPConfigData'
            - $ref: '#/components/schemas/AzureConfigData'
          example:
            accountID: '00000011123'
            vpcId: vpc-141f0fffff141aa00
            region: us-east-1
            cidr: 10.0.0.0/16
    CreateNetworkPeeringResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID is the unique UUID generated when a VPC record is created.
    CreateOIDCProviderRequest:
      type: object
      required:
        - issuer
        - clientId
      properties:
        issuer:
          type: string
          example: https://example.auth.com
          description: The URL for the OpenID Connect issuer.
        register:
          type: boolean
          example: true
          description: Indicates whether to register a new App Service user account when a user logs in using OpenID Connect.
        clientId:
          type: string
          example: foo_client
          description: The OpenID Connect provider client ID.
        userPrefix:
          type: string
          example: fooOIDC
          description: Username prefix for all users created for this provider
        discoveryUrl:
          type: string
          example: https://foo.com/.well-known/openid-configuration
          description: The URL for the non-standard discovery endpoint.
        usernameClaim:
          type: string
          example: fooAlt
          description: Allows a different OpenID Connect field to be specified instead of the Subject (sub).
        rolesClaim:
          type: string
          example: roles
          description: |
            If set, the value(s) of the given OpenID Connect authentication token claim will be added to the user's roles.
            The value of this claim in the OIDC token must be either a string or an array of strings, any other type will result in an error.
        scope:
          type: array
          items:
            type: string
          example:
            - openid
            - profile
            - email
          description: The scope sent for the OpenID Connect request.
          default:
            - openid
            - email
      example:
        issuer: https://foo.com
        register: true
        clientId: foo_client
        userPrefix: fooOIDC
        discoveryUrl: https://foo.com/.well-known/openid-configuration
        usernameClaim: fooAlt
    CreateOnDemandRestoreRequest:
      type: object
      required:
        - targetClusterID
        - sourceClusterID
        - backupID
        - services
      properties:
        targetClusterID:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the target cluster to restore to.
        sourceClusterID:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the source cluster the restore is based on.
        backupID:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The backup record ID that contains the backup to restore from.
        services:
          $ref: '#/components/schemas/Services'
        forceUpdates:
          type: boolean
          example: true
          description: Forces data in the Couchbase cluster to be overwritten even if the data in the cluster is newer.
        autoRemoveCollections:
          type: boolean
          example: true
          description: Automatically delete scopes/collections which are known to be deleted in the backup.
        filterKeys:
          type: string
          example: ''
          description: Only restore data where the key matches a particular regular expression.
        filterValues:
          type: string
          example: ''
          description: Only restore data where the value matches a particular regular expression.
        includeData:
          type: string
          example: bucket-1.scope1
          description: Restores only the data specified here.
        excludeData:
          type: string
          example: bucket-1.scope1.coll1
          description: Skips restoring the data specified here.
        mapData:
          type: string
          example: bucket1=new1
          description: Specified when you want to restore source data into a different location.
        replaceTTL:
          type: string
          description: Sets a new expiration (time-to-live) value for the specified keys.
          enum:
            - none
            - all
            - expired
          example: all
        replaceTTLWith:
          type: string
          description: Updates the expiration for the keys.
          example: '2021-09-01T12:34:56Z'
    CreateOpenAIConfigurationRequest:
      type: object
      required:
        - apiKey
      properties:
        apiKey:
          type: string
          description: The API key to access the OpenAI API.
          example: sk-1234567890
    CreatePrivateEndpointCommandResponse:
      type: object
      required:
        - command
      properties:
        command:
          type: string
          description: The CLI command or script used to create private endpoint within your CSP.
          example: aws ec2 create-vpc-endpoint --vpc-id  vpc-1234 --region us-east-1 --service-name com.amazonaws.vpce.us-east-1.vpce-svc-1234 --vpc-endpoint-type Interface --subnet-ids subnet-1234
    CreatePrivateEndpointResponse:
      type: object
      required:
        - id
        - status
      properties:
        id:
          type: string
          description: endpoint id
          example: vpce-1234
        status:
          type: string
          enum:
            - pending
            - pendingAcceptance
            - linked
            - rejected
            - failed
            - unrecognized
          example: linked
    CreatePrivateEndpointServiceCommandRequest:
      type: object
      required:
        - vpcID
        - subnetIDs
      properties:
        vpcID:
          type: string
          minLength: 12
          maxLength: 21
          description: The ID of your virtual network
          example: vpc-1234
        subnetIDs:
          type: array
          items:
            type: string
          example:
            - subnet-1234
    CreatePrivateEndpointServiceCommandResponse:
      type: object
      required:
        - command
      properties:
        command:
          type: string
          description: The CLI command or script used to create private endpoint within your CSP.
          example: aws ec2 create-vpc-endpoint --vpc-id  vpc-1234 --region us-east-1 --service-name com.amazonaws.vpce.us-east-1.vpce-svc-1234 --vpc-endpoint-type Interface --subnet-ids subnet-1234
    CreatePrivateEndpointServiceConnectionRequest:
      type: object
      required:
        - endpointID
      properties:
        endpointID:
          type: string
          description: The endpoint ID of the private endpoint that needs to be associated with the endpoint service.
          example: vpce-1234
    CreateProjectRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: The name of the project (up to 128 characters).
          maxLength: 128
          example: My Project
        description:
          type: string
          description: A short description of the project (up to 256 characters).
          maxLength: 256
          example: My awesome project
    CreateProjectResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the project created.
    CreateProviderRequest:
      type: object
      required:
        - type
        - name
        - configuration
      properties:
        type:
          type: string
          enum:
            - awsS3
            - openAI
            - awsBedrock
          description: The type of provider to create.
          example: awsS3
        name:
          type: string
          description: The name for the provider integration to create.
          maxLength: 50
          example: my-openai-provider
        configuration:
          type: object
          description: The configuration for the provider to create.
          oneOf:
            - $ref: '#/components/schemas/CreateS3ConfigurationRequest'
            - $ref: '#/components/schemas/CreateOpenAIConfigurationRequest'
            - $ref: '#/components/schemas/CreateBedrockConfigurationRequest'
    CreateProviderResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          description: The ID of the created provider.
          example: provider1-ffffffff-aaaa-1414-eeee-000000000000
    CreateReplicationJSONResponse:
      type: object
      required:
        - replicationId
      properties:
        replicationId:
          type: string
          description: The ID of the replication. This field is present for both oneWay and twoWay replications.
          example: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI=
        reverseReplicationId:
          type: string
          description: The ID of the replication from target to source. This field is only present for twoWay replications.
          example: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI=
    CreateReplicationRequest:
      type: object
      required:
        - sourceBucket
        - target
      properties:
        sourceBucket:
          type: string
          description: The ID of the source bucket.
          example: dGVzdA
        target:
          type: object
          description: Target contains all the metadata about a replication target.
          required:
            - cluster
            - bucket
          properties:
            cluster:
              type: string
              description: |
                The target cluster identifier. 
                - For Capella clusters, use cluster ID
                - For external clusters, use cluster reference name
              example: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
            bucket:
              type: string
              description: |
                The target bucket identifier. 
                - For Capella buckets, use bucket ID
                - For external clusters, use bucket name
              example: dPVzdB
            type:
              type: string
              description: Type tells us if the target cluster is capella or external.
              enum:
                - capella
                - external
              default: capella
        mode:
          type: string
          description: This specifies the replication creation mode.
          enum:
            - async
            - sync
          default: async
          example: async
        mappings:
          $ref: '#/components/schemas/mappings'
        direction:
          type: string
          description: Direction specifies the replication flow — whether it's oneWay (source to target only) or twoWay (also from target back to source).
          enum:
            - oneWay
            - twoWay
          default: oneWay
          example: oneWay
        priority:
          type: string
          description: |
            Priority represents the resource allocation to the replication.

            - low: Resource constraints are applied when competing with high priority replications
            - medium: Resource constraints are applied during initial processing when competing with high priority replications, then operates as high priority
            - high: No resource constraints are applied (default priority)
          enum:
            - low
            - medium
            - high
          default: high
          example: high
        networkUsageLimit:
          type: integer
          default: 0
          description: Network usage limit in MiB per second. 0 means unlimited.
          example: 100
        filter:
          $ref: '#/components/schemas/filter'
    CreateReplicationResponseAsync:
      type: object
      required:
        - jobId
      properties:
        jobId:
          type: string
          description: The ID of the job for the async creation of the replication.
          example: a83d322a-8350-4e77-8708-2b4e961a4259
    CreateS3ConfigurationRequest:
      type: object
      required:
        - accessKeyId
        - secretAccessKey
        - awsRegion
        - bucket
      properties:
        accessKeyId:
          type: string
          description: The access key ID to access the S3 bucket.
        secretAccessKey:
          type: string
          description: The secret access key to access the S3 bucket.
        sessionToken:
          type: string
          description: The session token to access the S3 bucket in case of temporary credentials.
        awsRegion:
          type: string
          description: The AWS region the S3 bucket is located in.
        bucket:
          type: string
          description: The name of the S3 bucket.
        folderPath:
          type: string
          description: The path to the folder in the S3 bucket where the files are stored. Leave empty for root folder.
          default: ''
    CreateScheduledBackupRequest:
      description: Backup schedule type.
      type: object
      properties:
        type:
          type: string
          enum:
            - weekly
          example: weekly
        weeklySchedule:
          type: object
          description: Schedule a full backup once a week with regular incrementals.
          required:
            - dayOfWeek
            - startAt
            - incrementalEvery
            - retentionTime
            - costOptimizedRetention
          properties:
            dayOfWeek:
              type: string
              description: Day of the week for the backup.
              enum:
                - sunday
                - monday
                - tuesday
                - wednesday
                - thursday
                - friday
                - saturday
              example: sunday
            startAt:
              type: integer
              description: Start at hour (in 24-Hour format).
              enum:
                - 0
                - 1
                - 2
                - 3
                - 4
                - 5
                - 6
                - 7
                - 8
                - 9
                - 10
                - 11
                - 12
                - 13
                - 14
                - 15
                - 16
                - 17
                - 18
                - 19
                - 20
                - 21
                - 22
                - 23
            incrementalEvery:
              type: integer
              description: Interval in hours for incremental backup.
              enum:
                - 1
                - 2
                - 4
                - 6
                - 8
                - 12
                - 24
              example: 4
            retentionTime:
              type: string
              description: Retention time in days.
              enum:
                - 30days
                - 60days
                - 90days
                - 180days
                - 1year
                - 2years
                - 3years
                - 4years
                - 5years
              example: 90days
            costOptimizedRetention:
              type: boolean
              description: Optimize backup retention to reduce total cost of ownership (TCO). This gives the option to keep all but the last backup cycle of the month for thirty days; the last cycle will be kept for the defined retention period. To learn more, see [Cost Optimized Retention Policy](https://docs.couchbase.com/cloud/clusters/backup-restore.html#cost-optimized-retention-policy).
              example: false
    CreateScopeRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: |
            The name of the scope. The name should adhere to the following rules:

            1. The name must be between 1 and 251 characters in length.

            2. The name can contain only the characters A-Z, a-z, 0-9, and the symbols _, -, and %.

            3. The name cannot start with _ or %.

            Note that scope and collection names are case-sensitive.
          example: my-scope
    CreateStructuredWorkflowRequest:
      type: object
      required:
        - source
        - targetCouchbaseKeyspace
        - structuredDataProcessingConfig
        - vectorizationConfig
      properties:
        source:
          type: object
          required:
            - providerId
          properties:
            providerId:
              type: string
              description: |
                The unique identifier of the source's provider. This is used to identify the integration in the Capella platform.
              example: provider1-s3-ffffffff-aaaa-1414-eeee
        targetCouchbaseKeyspace:
          $ref: '#/components/schemas/CouchbaseKeyspace'
        structuredDataProcessingConfig:
          description: Configuration for structured data processing.
          type: object
          required:
            - jsonType
          properties:
            keyFieldName:
              type: string
              description: |
                The name of the field that will be used as the key for the Couchbase document. Random UUID will be generated if not provided.
              example: document_id
            jsonType:
              type: string
              description: |
                The type of JSON that has to be processed by the structured data processing workflow.
              enum:
                - json
                - jsonlist
                - jsonlines
              example: jsonlines
        vectorizationConfig:
          $ref: '#/components/schemas/VectorizationConfigCreation'
    CreateUnstructuredWorkflowRequest:
      type: object
      required:
        - source
        - targetCouchbaseKeyspace
        - unstructuredDataProcessingConfig
        - vectorizationConfig
      properties:
        source:
          type: object
          required:
            - providerId
          properties:
            providerId:
              type: string
              description: |
                The unique identifier of the source's provider. This is used to identify the integration in the Capella platform.
              example: provider1-s3-ffffffff-aaaa-1414-eeee
        targetCouchbaseKeyspace:
          $ref: '#/components/schemas/CouchbaseKeyspace'
        unstructuredDataProcessingConfig:
          description: Configuration for unstructured data processing.
          type: object
          required:
            - chunkingStrategy
          properties:
            pageNumbers:
              type: array
              description: |
                The page range of the file which has to be processed.
                If not provided, all pages will be processed.
                Should be an array of size 2, with the first element being the start page and the second element being the end page.
              example:
                - 3
                - 16
              items:
                type: integer
            exclusions:
              type: array
              description: |
                The sections of the file that have to be excluded from the unstructured data processing workflow.
                Should be an array of strings, each representing a section of the file to be excluded.
                The possible values are:
                  - Header
                  - Footer
                  - Table

                If not provided, all sections will be processed.
              example:
                - header
                - footer
              items:
                type: string
                enum:
                  - header
                  - footer
                  - table
            enableOCR:
              type: boolean
              description: |
                Whether to enable OCR scanning for the file.
                If not provided, OCR will be disabled.
              example: true
            chunkingStrategy:
              type: object
              description: |
                The strategy to use for chunking the file.
              properties:
                strategyType:
                  type: string
                  enum:
                    - RECURSIVE_SPLITTER
                    - SEMANTIC_SPLITTER
                    - PARAGRAPH_SPLITTER
                    - SENTENCE_SPLITTER
                    - FIXED_TOKEN_SPLITTER
                chunkSize:
                  type: integer
                  description: |
                    The size of the chunks.
                  example: 1000
                chunkOverlap:
                  type: integer
                  description: |
                    The overlap between the chunks.
                  example: 100
            objectMetadataExtractionConfig:
              type: object
              description: |
                Configuration for extracting metadata from S3 objects.
                This allows you to copy system-defined and user-defined metadata from S3 objects
                into the processed documents. System metadata includes properties like ContentType,
                ContentLength, LastModified, etc. User metadata includes custom key-value pairs
                added when uploading objects to S3 (x-amz-meta-* headers).
              properties:
                systemMetadataKeys:
                  type: array
                  description: |
                    List of S3 system metadata keys to extract from objects.
                    If empty array is provided, all system metadata will be extracted.
                    Pass null or omit to skip extracting system metadata.
                    Common keys: ContentType, ContentLength, LastModified, ETag, etc.
                  example:
                    - ContentType
                    - LastModified
                  items:
                    type: string
                userMetadataKeys:
                  type: array
                  description: |
                    List of user-defined metadata keys to extract from S3 objects.
                    If empty array is provided, all user metadata will be extracted.
                    Pass null or omit to skip extracting user metadata.
                    These correspond to x-amz-meta-* headers set when uploading objects.
                  example:
                    - author
                    - department
                    - version
                  items:
                    type: string
        vectorizationConfig:
          $ref: '#/components/schemas/VectorizationConfigCreation'
    CreateUserRequest:
      type: object
      required:
        - email
        - organizationRoles
      properties:
        name:
          type: string
          description: The name of the user.
          example: John
          maxLength: 128
        email:
          $ref: '#/components/schemas/Email'
        organizationRoles:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationRoles'
          example:
            - organizationOwner
        resources:
          type: array
          items:
            $ref: '#/components/schemas/Resource'
          default: []
          example: []
    CreateUserResponse:
      type: object
      properties:
        id:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The UUID of the user created.
    CreateVPCEndpointCommandRequest:
      type: object
      required:
        - vpcID
        - subnetIDs
      properties:
        vpcID:
          type: string
          minLength: 12
          maxLength: 21
          description: The ID of your virtual network
          example: vpc-1234
        subnetIDs:
          type: array
          items:
            type: string
          example:
            - subnet-1234
    CreateVPCEndpointRequest:
      type: object
      required:
        - vpcID
      properties:
        vpcID:
          type: string
          description: The ID of your virtual network
          example: vpc-1234
        subnetIDs:
          type: array
          items:
            type: string
          example:
            - subnet-1234
            - subnet-5678
    CreateVectorizationWorkflowRequest:
      type: object
      required:
        - targetCouchbaseKeyspace
        - vectorizationConfig
      properties:
        targetCouchbaseKeyspace:
          $ref: '#/components/schemas/CouchbaseKeyspace'
        vectorizationConfig:
          $ref: '#/components/schemas/VectorizationConfigCreation'
    CreateWorkflowRequest:
      type: object
      required:
        - name
        - type
        - configuration
      properties:
        name:
          type: string
          description: The name of the workflow.
          example: my-structured-workflow
        type:
          type: string
          description: |
            The type of workflow.
          enum:
            - structuredDataProcessing
            - unstructuredDataProcessing
            - vectorization
        configuration:
          oneOf:
            - $ref: '#/components/schemas/CreateStructuredWorkflowRequest'
            - $ref: '#/components/schemas/CreateUnstructuredWorkflowRequest'
            - $ref: '#/components/schemas/CreateVectorizationWorkflowRequest'
    CreateWorkflowResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          description: The ID of the workflow created.
          example: ffffffff-aaaa-1414-eeee-000000000000
    CreateWorkflowRunResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          description: The ID of the workflow run created.
          example: ffffffff-aaaa-1414-eeee-000000000000
    CurrentColumnarState:
      type: string
      enum:
        - deploying
        - deploymentFailed
        - destroying
        - destroyFailed
        - healthy
        - scaling
        - scaleFailed
        - turningOff
        - turnedOff
        - turningOn
      example: deploying
    CurrentState:
      type: string
      enum:
        - draft
        - deploying
        - scaling
        - upgrading
        - rebalancing
        - peering
        - destroying
        - healthy
        - degraded
        - turnedOff
        - turningOff
        - turningOn
        - deploymentFailed
        - scaleFailed
        - upgradeFailed
        - rebalanceFailed
        - peeringFailed
        - destroyFailed
        - offline
        - turningOffFailed
        - turningOnFailed
      example: deploying
    Cursor:
      type: object
      required:
        - pages
        - hrefs
      properties:
        pages:
          $ref: '#/components/schemas/Pages'
        hrefs:
          $ref: '#/components/schemas/Hrefs'
    Days:
      type: object
      required:
        - state
        - day
      properties:
        state:
          type: string
          enum:
            - 'on'
            - 'off'
            - custom
          description: |
            Cluster state (on, off, or custom).
            - On state turns the cluster on (healthy state) for the whole day.
            - Off state turns the cluster off for the whole day.
            - Custom state should be used for the days when a cluster needs to be in the turned on (healthy) state during the specified time window instead of all day.
        day:
          type: string
          description: |
            Day of the week for scheduling on/off.
            - The days of the week should be in proper sequence starting from Monday and ending with Sunday.
            - The On/Off schedule requires 7 days for the schedule, one for each day of the week. There cannot be more or less than 7 days in the schedule.
            - Clusters cannot be scheduled to be off for the entire day for every day of the week.
          enum:
            - monday
            - tuesday
            - wednesday
            - thursday
            - friday
            - saturday
            - sunday
        from:
          description: Start time boundary for the day. This is in the 24 Hour format.
          $ref: '#/components/schemas/OnTimeBoundary'
        to:
          description: End time boundary for the day. This is in the 24 Hour format.
          $ref: '#/components/schemas/OnTimeBoundary'
    DisabledUserRole:
      type: object
      required:
        - domain
        - name
      properties:
        domain:
          type: string
          description: |
            Domain of the user/role. Can be used to filter logs by domain. Example values:
              - sgw
              - cbs
        name:
          type: string
          description: Name of the user/role
          maxLength: 256
    DisabledUserRoles:
      type: array
      items:
        $ref: '#/components/schemas/DisabledUserRole'
    DiskAWS:
      type: object
      required:
        - type
        - storage
        - iops
      properties:
        type:
          type: string
          description: Type of disk. Please choose from the given list for AWS cloud provider.
          enum:
            - gp3
            - io2
          example: gp3
        storage:
          type: integer
          description: Storage in GB. See documentation for supported storage.
          example: 50
          minimum: 50
        iops:
          type: integer
          description: Please refer to documentation for supported IOPS.
          example: 3000
    DiskAzure:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: Type of disk. Please choose from the given list for Azure cloud provider.
          enum:
            - P6
            - P10
            - P15
            - P20
            - P30
            - P40
            - P50
            - P60
            - Ultra
        storage:
          type: integer
          description: Storage in GB. Only required for Ultra Disk types. Not used in other storage types.
          enum:
            - 64
            - 128
            - 256
            - 512
            - 1024
            - 2048
            - 3072
            - 4096
            - 5120
            - 6144
            - 7168
            - 8192
            - 9216
            - 10240
            - 11264
            - 12288
            - 13312
            - 14336
            - 15360
          example: 64
          minimum: 64
        iops:
          type: integer
          description: Only required for Ultra Disk types. Not used in other storage types. See [IOPS Defaults](https://docs.couchbase.com/cloud/clusters/scale-database.html#IOPS-Defaults) for a list of supported IOPS values.
          example: 3000
        autoExpansion:
          type: boolean
          description: Determine if disk storage should automatically expand. Defaults to "false" if not specified.
          example: false
    DiskGCP:
      type: object
      required:
        - type
        - storage
      properties:
        type:
          type: string
          description: Type of disk. Please choose from the given list for GCP cloud provider.
          enum:
            - pd-ssd
        storage:
          type: integer
          description: Storage in GB. Please refer to documentation for supported storage.
          example: 50
          minimum: 50
    DurabilityLevel:
      type: string
      description: |
        This is the minimum level at which all writes to the bucket must occur.

         The options for Durability level are as follows, according to the bucket type.

         - For a Couchbase bucket:

           1. None

           2. Replicate to Majority

           3. Majority and Persist to Active

           4. Persist to Majority

         - For an Ephemeral bucket:

           1. None

           2. Replicate to Majority

         To learn more, see [Create a Bucket](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket).
      enum:
        - none
        - majority
        - majorityAndPersistActive
        - persistToMajority
      default: none
    EditCloudSnapshotBackupRetentionRequest:
      type: object
      properties:
        retention:
          type: integer
          description: Represents interval in hours to retain the backup.
          example: 730
    EditColumnarAnalyticsBackupRetentionRequest:
      type: object
      properties:
        retention:
          type: integer
          description: Represents interval in hours to retain the backup.
          example: 720
      required:
        - retention
    Email:
      type: string
      description: Email of the user.
      example: john.doe@example.com
    EnableAwsPrivateEndpointServiceRequest:
      type: object
      properties:
        routes:
          allOf:
            - $ref: '#/components/schemas/PrivateEndpointRoutes'
            - description: Optional routes configuration to enable for private endpoints. If not provided, defaults to false.
    EnableCMEKAzureRequest:
      type: object
      required:
        - cloudProvider
      properties:
        cloudProvider:
          type: string
          description: Cloud provider for CMEK keys.
          enum:
            - azure
          example: azure
    EnableCrossClusterVersioning:
      type: boolean
      description: |
        This being enabled is a pre-requisite to a few XDCR features.

        When enabled, each document processed by XDCR will have additional metadata stored, called the Hybrid Logical Vector (HLV), in the document extended attributes (xattrs).

        The Cross Cluster Versioning setting cannot be disabled after it is enabled. By default, this value reflects what its current value is in the bucket, so omit this setting to leave it as it's current value.

        See the documentation for enableCrossClusterVersioning and the dependent features for important details on when to enable this setting.
    Error:
      type: object
      required:
        - httpStatusCode
        - message
        - code
        - hint
      properties:
        httpStatusCode:
          type: integer
        code:
          type: integer
        message:
          type: string
        hint:
          type: string
    EvictionPolicy:
      type: string
      description: |
        The policy which Capella adopts to prevent data loss due to memory exhaustion.
        This may be also known as Ejection Policy in the Couchbase documentation. 

        - For Couchbase bucket, Eviction Policy is `fullEviction` by default.

        - For Ephemeral buckets, Eviction Policy is a required field, and should be one of the following:

           1. noEviction

           2. nruEviction

          To learn more, see [Ejection Policy](https://docs.couchbase.com/server/current/rest-api/rest-bucket-create.html#evictionpolicy).
      enum:
        - fullEviction
        - noEviction
        - nruEviction
      example: fullEviction
      default: fullEviction
    ExternalModel:
      type: object
      required:
        - external
      properties:
        external:
          type: object
          required:
            - openAiIntegration
            - modelName
          properties:
            openAiIntegration:
              $ref: '#/components/schemas/IntegrationConfig'
            modelName:
              type: string
              description: The name of the external embedding model.
              example: text-embedding-3-small
              enum:
                - text-embedding-3-small
                - text-embedding-3-large
                - text-embedding-ada-002
    ExternalToken:
      type: string
      example: QktxVUtFU1dKV1FlJBYXdnTVlRemFZdlRDZTg6eFh4dzU4JUYjqdUwwYkJoTjZSTmlzRWFIRHF0b1h4a08yazBpQjJ1bms1OW4yTUhdsfRib3IhVQ==
      description: |
        The bearer authentication token is a third-party token that you set for the alert notifications sent through the webhook integration.
    GCP:
      type: object
      properties:
        providerId:
          description: The ID of the VPC peer on GCP.
          type: string
          example: cc-ffffffff-aaaa-1414-eeee-000000000000-cc-ffffffff-aaaa-1414
        GCPConfig:
          $ref: '#/components/schemas/GCPConfigData'
    GCPConfig:
      type: object
      required:
        - resourceName
      properties:
        resourceName:
          type: string
          description: The unique identifier for a GCP resource, specifying the project, location, key ring, and the key within Cloud KMS.
          example: projects/my-project/locations/global/keyRings/my-key-ring/cryptoKeys/my-key
    GCPConfigData:
      type: object
      required:
        - networkName
        - cidr
        - projectId
        - serviceAccount
      description: GCP config data required to establish a VPC peering relationship. Refer to the docs for other limitations to GCP VPC Peering - [ref](https://cloud.google.com/vpc/docs/vpc-peering).
      properties:
        networkName:
          type: string
          description: The name of the network that you want to peer with.
          example: cc-ffffffff-aaaa-1414-eeee-000000000000
        cidr:
          type: string
          description: The GCP VPC CIDR block of network in which your application runs. This cannot overlap with your Capella CIDR Block.
          example: 10.0.0.0/16
        projectId:
          type: string
          description: The unique identifier for your GCP project.
          example: rock-galaxy-123456
        serviceAccount:
          type: string
          description: |
            ServiceAccount created or assigned on the external VPC project. GCP Service Account with below permissions
            - DNS Admin
            - Compute.NetworkAdmin
            It should be in the form of an email that is shown under `gcloud iam service-accounts list` command.
            [Reference](https://cloud.google.com/iam/docs/creating-managing-service-accounts#creating)
          example: service-account-name@project-id.iam.gserviceaccount.com
    GetAPIKey:
      type: object
      required:
        - id
        - name
        - description
        - expiry
        - allowedCIDRs
        - organizationRoles
        - resources
        - audit
      properties:
        id:
          $ref: '#/components/schemas/APIKeyId'
        name:
          $ref: '#/components/schemas/APIKeyName'
        description:
          $ref: '#/components/schemas/APIKeyDescription'
        expiry:
          $ref: '#/components/schemas/APIKeyExpiry'
        allowedCIDRs:
          $ref: '#/components/schemas/APIKeyAllowedCIDRs'
        organizationRoles:
          type: array
          items:
            $ref: '#/components/schemas/APIKeyOrganizationRoles'
        resources:
          $ref: '#/components/schemas/APIKeyResources'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetAPIKeys:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetAPIKey'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetAlertResponse:
      type: object
      required:
        - id
        - name
        - tenantId
        - kind
        - configKey
        - enabled
        - status
        - config
        - audit
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the alert integration created.
        name:
          type: string
          description: Name of the alert integration (up to 1024 characters).
          example: test alert 1
          maxLength: 1024
        tenantId:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The tenant ID to which the alert integration belongs to.
        projectId:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The project ID to which the alert integration belongs to.
        kind:
          type: string
          description: Type of alert integration, currently supports only 'webhook'.
          example: webhook
          enum:
            - webhook
        configKey:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000-alert-integration
          description: ConfigKey is the key that was used to store the alert integration config and secrets.
        status:
          type: string
          example: healthy
          description: Status is either healthy or unhealthy showing if the integration is functional or not.
        enabled:
          type: boolean
          example: false
          description: Enables or disables the integration. Only 1 integration can be active at any time.
        config:
          $ref: '#/components/schemas/ResponseConfig'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetAlertsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetAlertResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetAllowedCidrsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AllowedCidr'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetAppEndpointAuditLogResponse:
      type: object
      properties:
        auditEnabled:
          type: boolean
          description: Determines whether audit logging is enabled
        enabledEventIds:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
                description: ID of the enabled event
        disabledUsers:
          $ref: '#/components/schemas/DisabledUserRoles'
        disabledRoles:
          $ref: '#/components/schemas/DisabledUserRoles'
    GetAppEndpointResponse:
      type: object
      required:
        - name
        - bucket
      properties:
        name:
          type: string
          description: App Endpoint name.
          example: appEndpoint1
        cors:
          description: Cross-Origin Resource Sharing (CORS) configuration, used to enable granular access control to trusted domains for Origin and Login purposes in browser-based and hybrid applications.
          $ref: '#/components/schemas/CORSConfig'
        deltaSyncEnabled:
          type: boolean
          example: false
          description: Enable or disable delta sync
        bucket:
          type: string
          example: bucket1
          description: The Capella Cluster backing bucket for the App Endpoint.
        scopes:
          description: Scopes and collection specific config.
          $ref: '#/components/schemas/ScopesConfig'
        userXattrKey:
          type: string
          example: syncFnXattr
          description: The key of the user-extended attributes (xattr) that will be accessible from the Access control and validation function. If left empty, the feature will be disabled.
        disablePublicAllDocs:
          type: boolean
          default: false
          description: Disable the `_all_docs` endpoint for this App Endpoint on the App Services Public API.
        state:
          type: string
          example: Online
          description: App Endpoint state.
        oidc:
          description: OpenID Connect provider configuration.
          type: array
          items:
            $ref: '#/components/schemas/OIDCProvider'
        requireResync:
          type: object
          example:
            scope_1:
              items:
                - collection_1
          additionalProperties:
            type: array
            items:
              type: string
          description: Scopes and collections that require resyncing.
        isRequireResync:
          type: boolean
          description: Indicates whether the App Endpoint requires resyncing.
        adminURL:
          type: string
          description: A URL for the admin API used for the administration of App Endpoints. For more information, read the [Capella App Services Admin API Reference](https://docs.couchbase.com/cloud/app-services/references/rest-api-introduction.html#:~:text=Capella%20App%20Services%20Admin%20API%20Reference)
        metricsURL:
          type: string
          description: A URL for the metrics API used for monitoring App Services performance metrics. For more information, read the [Capella App Services Metrics API Reference](https://docs.couchbase.com/cloud/app-services/references/rest_api_metric.html)
        publicURL:
          type: string
          description: A URL for the public API used for access to functions for data access and manipulation. For more information, read the [Capella App Services Public API Reference](https://docs.couchbase.com/cloud/app-services/references/rest_api_public.html)
    GetAppServiceAllowedCidrsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AppServiceAllowedCidr'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetAppServicePrivateEndpointStateResponse:
      type: object
      properties:
        state:
          type: string
          description: The status of the Private Endpoint service.
          example: enabled
          enum:
            - enabled
            - enabling
            - disabled
            - disabling
            - failed
        targetState:
          type: string
          description: The target state of the Private Endpoint service. This is the desired end state of the service. The possible values are enabled and disabled.
          example: enabled
          enum:
            - enabled
            - disabled
    GetAppServiceResponse:
      type: object
      required:
        - id
        - name
        - description
        - cloudProvider
        - nodes
        - compute
        - clusterId
        - currentState
        - version
        - plan
        - audit
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the App Service created.
        name:
          type: string
          description: Name of the App Service (up to 256 characters).
          example: My App Service
          maxLength: 256
        description:
          type: string
          description: Description of the App Service (up to 1024 characters).
          example: Description of the App Service.
          maxLength: 1024
        cloudProvider:
          type: string
          description: Provider is the cloud service provider for the App Service.
          example: aws
        nodes:
          type: integer
          description: Number of nodes configured for the App Service.
          example: 2
        compute:
          $ref: '#/components/schemas/AppServiceCompute'
        clusterId:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the cluster linked to the App Service.
        currentState:
          $ref: '#/components/schemas/AppServiceStates'
        version:
          type: string
          description: The version of the App Service server. If left empty, it will be defaulted to the latest available version.
          example: 3.141.5
        plan:
          $ref: '#/components/schemas/SupportPlan'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetAppServicesResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetAppServiceResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetAuditExportDocResponse:
      type: object
      properties:
        id:
          type: string
          nullable: true
        download_id:
          type: string
          nullable: true
        download_expires:
          type: string
          format: date-time
          nullable: true
        status:
          type: string
          nullable: true
        appServiceId:
          type: string
          nullable: true
        tenantId:
          type: string
          nullable: true
        clusterId:
          type: string
          nullable: true
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
      example:
        id: 920e7b93-28c7-421b-993b-9fffecfd3598
        download_id: https://cb-audit-logs-333d2ad2-1408-405e-9995-XXXX.s3.us-east-1.amazonaws.com/export/app-service-audit-logs-XXXX-from-2024-07-06-to-2024-08-05.tar.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X
        download_expires: '2024-08-08T13:43:48.420487299Z'
        status: Ready
        appServiceId: 01071798-23e5-4ec6-b814-13bebef70572
        tenantId: 333d2ad2-1408-405e-9995-68338d20ab5c
        clusterId: 71dd1cb2-34ac-43ae-a503-b2a9202f02d4
        createdByUserID: d4fa667c-206a-4916-9a24-3a03c2ec5771
        upsertedByUserID: ''
        createdAt: '2024-08-05T13:43:45.998790923Z'
        upsertedAt: '0001-01-01T00:00:00Z'
        modifiedByUserID: d4fa667c-206a-4916-9a24-3a03c2ec5771
        modifiedAt: '2024-08-05T13:43:48.420521466Z'
        version: 3
    GetAuditLogEventsResponse:
      type: object
      required:
        - events
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/AuditFilterableEvent'
    GetAuditLogStreamingResponse:
      type: object
      properties:
        streamingEnabled:
          type: boolean
          description: Determines whether audit log streaming is enabled or not.
        logStreamingState:
          type: string
          description: The current status of audit log streaming
          example: enabling
        disabledAppEndpoints:
          type: array
          items:
            type: string
          description: List of App Endpoints to be excluded from audit log streaming.
        outputType:
          type: string
          description: The type of output for the audit log streaming
          example: datadog
    GetAzureCMEKApplicationResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          description: The client ID of the multi-tenant entra application.
          example: ffffffff-aaaa-1414-eeee-000000000000
    GetAzureVNetPeeringCommandRequest:
      type: object
      required:
        - tenantId
        - subscriptionId
        - resourceGroup
        - vnetId
        - vnetPeeringServicePrincipal
      properties:
        tenantId:
          description: The Azure tenant ID. To find your tenant ID, see [How to find your Azure Active Directory tenant ID](https://learn.microsoft.com/en-us/entra/fundamentals/how-to-find-tenant).
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
        subscriptionId:
          description: Subscription ID is a GUID that uniquely identifies your subscription to use Azure services. To find your subscription ID, see [Find your Azure subscription](https://learn.microsoft.com/en-us/azure/azure-portal/get-subscription-tenant-id#find-your-azure-subscription).
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
        resourceGroup:
          description: The resource group name holding the resource you’re connecting with Capella.
          type: string
          example: sample-resource-group
        vnetId:
          description: The VNet ID is the name of the virtual network in Azure.
          type: string
          example: sample-vnet
        vnetPeeringServicePrincipal:
          description: The enterprise application object ID for the Capella service principal. You can find the enterprise application object ID in Azure by selecting Azure Active Directory -> Enterprise applications. Next, select the application name, the object ID is in the Object ID box.
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
    GetAzureVNetPeeringCommandResponse:
      type: object
      required:
        - command
      properties:
        command:
          description: The command to be run by the customer in is their external azure account in order to grant the service principal a network contributor role that is required for VNET peering.
          type: string
          example: az role assignment create \ --assignee-object-id ffffffff-aaaa-1414-eeee-000000000000 \ --role "Network Contributor" \ --scope /subscriptions/ffffffff-aaaa-1414-eeee-000000000000/resourceGroups/cb-private-net-demo/providers/Microsoft.Network/virtualNetworks/vnet-test \ --assignee-principal-type ServicePrincipal
    GetBackupByIDResponse:
      type: object
      required:
        - id
        - clusterID
        - tenantID
        - projectID
        - cycleID
        - status
        - method
        - bucketName
        - bucketID
        - source
        - provider
        - stats
        - elapsedTimeInSeconds
        - scheduleInfo
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the backup created.
        clusterID:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the cluster.
        tenantID:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the organization.
        projectID:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the project.
        cycleID:
          type: string
          description: The ID of the cycle this backup belongs to.
        date:
          type: string
          format: date-time
          description: |
            The RFC3339 timestamp representing the time at which backup was created.
          example: '2021-09-01T12:34:56Z'
        restoreBefore:
          type: string
          format: date-time
          description: |
            The RFC3339 timestamp representing the time at which backup will expire.
          example: '2021-09-02T12:34:56Z'
        status:
          $ref: '#/components/schemas/Status'
        method:
          $ref: '#/components/schemas/Method'
        bucketName:
          type: string
          description: The name of the bucket for which the backup belongs to.
          example: My-First-Bucket
        bucketID:
          type: string
          example: dGVzdA
          description: The ID of the bucket.This is the base64 encoding of the bucket name.
        source:
          $ref: '#/components/schemas/Source'
        provider:
          type: string
          description: The cloud provider where the cluster is hosted.
          example: aws
        stats:
          $ref: '#/components/schemas/BackupStats'
        elapsedTimeInSeconds:
          type: integer
          description: The amount of seconds that have elapsed between the creation and completion of the backup.
          example: 30
        scheduleInfo:
          $ref: '#/components/schemas/ScheduleInfo'
    GetBackupResponse:
      type: object
      required:
        - id
        - clusterID
        - tenantID
        - projectID
        - cycleID
        - status
        - method
        - bucketName
        - bucketID
        - source
        - provider
        - stats
        - elapsedTimeInSeconds
        - scheduleInfo
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the backup created.
        clusterID:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the cluster.
        tenantID:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the organization.
        projectID:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the project.
        cycleID:
          type: string
          description: The ID of the cycle this backup belongs to.
        date:
          type: string
          format: date-time
          description: |
            The RFC3339 timestamp representing the time at which backup was created.
          example: '2021-09-01T12:34:56Z'
        restoreBefore:
          type: string
          format: date-time
          description: |
            The RFC3339 timestamp representing the time at which backup will expire.
          example: '2021-09-02T12:34:56Z'
        status:
          $ref: '#/components/schemas/Status'
        method:
          $ref: '#/components/schemas/Method'
        bucketName:
          type: string
          description: The name of the bucket for which the backup belongs to.
          example: My-First-Bucket
        bucketID:
          type: string
          example: dGVzdA
          description: The ID of the bucket.This is the base64 encoding of the bucket name.
        source:
          $ref: '#/components/schemas/Source'
        provider:
          type: string
          description: The cloud provider where the cluster is hosted.
          example: aws
        stats:
          $ref: '#/components/schemas/BackupStats'
        elapsedTimeInSeconds:
          type: integer
          description: The amount of seconds that have elapsed between the creation and completion of the backup.
          example: 30
        scheduleInfo:
          $ref: '#/components/schemas/ScheduleInfo'
        bucketDownloadsCount:
          type: integer
          description: The number of downloadable backups the bucket this backup belongs to has.
          example: 2
    GetBackupsResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetBackupResponse'
    GetBucketResponse:
      type: object
      required:
        - id
        - name
        - timeToLiveInSeconds
        - replicas
        - type
        - storageBackend
        - memoryAllocationInMb
        - bucketConflictResolution
        - durabilityLevel
        - evictionPolicy
        - stats
        - enableCrossClusterVersioning
      properties:
        id:
          type: string
          example: dGVzdA
          description: The ID of the bucket. This is the base64 encoding of the bucket name.
        name:
          type: string
          description: Name of the bucket.
          example: My-First-Bucket
        type:
          type: string
          description: |-
            Type of the bucket. If selected Ephemeral, it is not eligible for imports or App Endpoints creation. The options may also be referred to as Memory and Disk (Couchbase), Memory Only (Ephemeral) in the Couchbase documentation.
            To learn more, see [Create a Bucket](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket).
        storageBackend:
          type: string
          description: |-
            Type of the bucket. If selected Ephemeral, it is not eligible for imports or App Endpoints creation.
            The options may also be referred to as Memory and Disk (Couchbase), Memory Only (Ephemeral) in the Couchbase documentation.
            To learn more, see [Create a Bucket](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket).
          example: couchstore
        vbuckets:
          type: integer
          enum:
            - 128
            - 1024
          description: |
            For Couchbase Server below 8.0, this is always 1024.

            For Couchbase Server 8.0 and above, this can be either 128 or 1024 depending on the storage backend.
        memoryAllocationInMb:
          type: integer
          description: The amount of memory to allocate for the bucket memory in MiB. The maximum limit is dependent on the allocation of the KV service.For example, 80% of the allocation.
          example: 100
        bucketConflictResolution:
          type: string
          description: |-
            The means in which conflicts are resolved during replication. This field may be referred to as conflictResolution in the Couchbase documentation, and seqno and lww may be referred to as sequence Number and Timestamp respectively.
            To learn more, see [Conflict Resolution](https://docs.couchbase.com/cloud/clusters/xdcr/xdcr.html#conflict-resolution).
        durabilityLevel:
          type: string
          description: |
            This is the minimum level at which all writes to the Couchbase bucket must occur.

            The options for Durability level are as follows, according to the bucket type.

            - For a Couchbase bucket:

              1. None

              2. Replicate to Majority

              3. Majority and Persist to Active

              4. Persist to Majority

            - For an Ephemeral bucket:

              1. None

              2. Replicate to Majority

             To learn more, see [Create a Bucket](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket).
        replicas:
          type: integer
          description: |-
            The number of replicas for the bucket.
            To learn more, see [Create a Bucket](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket).
        flush:
          type: boolean
          description: |
            Replaced by flushEnabled.

            Determines whether bucket flush is enabled. Set property to true to be able to delete all items in this bucket using the /flush endpoint. Disable property to avoid inadvertent data loss by calling the  the /flush endpoint .
          example: false
          deprecated: true
        flushEnabled:
          type: boolean
          description: Determines whether bucket flush is enabled. Set flushEnabled to true to be able to delete all items in this bucket using the /flush endpoint. Disable flushEnabled to avoid inadvertent data loss by calling the /flush endpoint .
          example: false
        timeToLiveInSeconds:
          type: integer
          description: Specifies the time to live (TTL) value in seconds. This is the maximum time to live for items in the bucket. If specified as 0, TTL is disabled. This is a non-negative value.
          example: 100
        enableCrossClusterVersioning:
          $ref: '#/components/schemas/EnableCrossClusterVersioning'
        evictionPolicy:
          $ref: '#/components/schemas/EvictionPolicy'
        stats:
          $ref: '#/components/schemas/Stats'
        priority:
          $ref: '#/components/schemas/BucketPriority'
    GetBucketsResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetBucketResponse'
        clusterStats:
          $ref: '#/components/schemas/ClusterStats'
    GetCMEKAzureMetadataListResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetCMEKAzureMetadataResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetCMEKAzureMetadataResponse:
      type: object
      required:
        - id
        - name
        - description
        - config
        - audit
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the key created.
        name:
          type: string
          description: Name of the key (up to 256 characters).
          example: Test Key
          maxLength: 256
        description:
          type: string
          description: Description of the Key (up to 1024 characters).
          example: Description of the cluster
          maxLength: 1024
        config:
          $ref: '#/components/schemas/AzureConfig'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetCMEKHistoryMetadataListResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetCMEKHistoryMetadataResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetCMEKHistoryMetadataResponse:
      type: object
      properties:
        config:
          oneOf:
            - $ref: '#/components/schemas/AWSConfig'
            - $ref: '#/components/schemas/GCPConfig'
        active:
          type: boolean
          description: |
            Whether the key is currently active or not.
        key:
          type: string
          description: |
            The customer managed enycrption key name.
        associatedAt:
          type: string
          format: date-time
          description: |
            The RFC3339 timestamp associated with when the resource was last modified.
        associatedBy:
          type: string
          description: |
            The user who last modified the key; this will be a UUID4 ID for
            standard users and wilmal be a string such as "internal-support" for
            internal Couchbase support users.
          example: ffffffff-aaaa-1414-eeee-000000000000
    GetCMEKMetadata:
      type: object
      required:
        - id
        - name
        - description
        - config
        - audit
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The unique identifier of the key.
        name:
          type: string
          description: Name of the key.
          example: Test Key
          maxLength: 256
        description:
          type: string
          description: Description of the Key.
          example: Description of the cluster
          maxLength: 1024
        config:
          anyOf:
            - $ref: '#/components/schemas/AWSConfig'
            - $ref: '#/components/schemas/GCPConfig'
            - $ref: '#/components/schemas/AzureConfig'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetCMEKMetadataListResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetCMEKMetadata'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetCertificateResponse:
      type: object
      required:
        - certificate
      properties:
        certificate:
          type: string
          example: |
            -----BEGIN CERTIFICATE-----
            MIIDFTCCAf2gAwIBAgI[...]CSYBWaK0ofivA==
            -----END CERTIFICATE-----
    GetCloudSnapshotBackupResponse:
      type: object
      properties:
        clusterId:
          type: string
        createdAt:
          type: string
          format: date-time
        expiration:
          type: string
          format: date-time
        id:
          type: string
        progress:
          $ref: '#/components/schemas/CloudSnapshotBackupProgress'
        projectId:
          type: string
        appService:
          type: string
          description: The version of any App Services which are associated with the cluster.
          example: 3.141.5
        cmek:
          type: array
          items:
            $ref: '#/components/schemas/ClusterCMEKConfig'
        crossRegionCopies:
          type: array
          items:
            $ref: '#/components/schemas/CloudSnapshotBackupCrossRegionCopies'
        retention:
          type: integer
        server:
          $ref: '#/components/schemas/CouchbaseServer'
        databaseSize:
          type: integer
          format: uint64
        tenantId:
          type: string
        type:
          type: string
    GetCloudSnapshotBackupScheduleResponse:
      type: object
      properties:
        interval:
          type: integer
          description: Represents the time interval.
          example: 1
        retention:
          type: integer
          description: Represents interval in hours to retain the backup.
          example: 24
        startTime:
          type: string
          format: date-time
          description: Represents the start time in ISO 8601 format.
          example: '2024-01-05T16:00:00+00:00'
        copyToRegions:
          type: array
          items:
            type: string
          description: Represents the list of geographical regions where snapshot copies are stored in addition to the primary region.
          example:
            - us-east-1
            - ap-southeast-4
    GetCloudSnapshotRestoreResponse:
      type: object
      properties:
        clusterId:
          type: string
        id:
          type: string
        createdAt:
          type: string
          format: date-time
        projectId:
          type: string
        restoreEnd:
          type: string
          format: date-time
        restoreTo:
          type: string
        snapshot:
          type: string
          format: date-time
        status:
          type: string
        tenantId:
          type: string
    GetClusterAuditLogExportResponse:
      type: object
      required:
        - createdAt
        - auditLogExportId
        - start
        - status
        - end
      properties:
        createdAt:
          type: string
          format: date-time
          description: The timestamp when the audit logs were exported.
        auditLogExportId:
          type: string
          description: The export ID of the audit log export job.
        start:
          type: string
          format: date-time
          description: The timestamp of when audit logs should start.
        status:
          type: string
          description: Indicates status of audit log creation. When status is complete, the compressed file can be manually downloaded.
          enum:
            - In Progress
            - Completed
            - Queued
            - Failed
          example: Completed
        end:
          type: string
          format: date-time
          description: The timestamp of when audit logs should end.
        auditLogDownloadURL:
          type: string
          description: Pre-signed URL to download cluster audit logs.
        expiration:
          type: string
          format: date-time
          description: The timestamp when the download link expires.
    GetClusterAuditLogExportsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetClusterAuditLogExportResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetClusterAuditSettingsResponse:
      type: object
      required:
        - auditEnabled
        - disabledUsers
        - enabledEventIDs
      properties:
        auditEnabled:
          type: boolean
          description: Determines whether audit logging is enabled or not on the cluster.
          example: true
        disabledUsers:
          $ref: '#/components/schemas/AuditSettingsDisabledUsers'
        enabledEventIDs:
          type: array
          description: List of enabled filterable audit events for the cluster.
          items:
            type: integer
            format: int32
            example:
              - 8243
              - 8255
    GetClusterOnOffScheduleResponse:
      description: Cluster schedule on/off
      type: object
      required:
        - timezone
        - days
        - activationStatus
      properties:
        activationStatus:
          type: string
          description: Shows if the cluster on/off schedule is paused or active.
          enum:
            - active
            - paused
          example: active
        timezone:
          $ref: '#/components/schemas/onOffTimezone'
        days:
          type: array
          items:
            $ref: '#/components/schemas/Days'
          example:
            - day: monday
              state: custom
              from:
                hour: 12
                minute: 30
              to:
                hour: 14
                minute: 30
            - day: tuesday
              state: custom
              from:
                hour: 12
                minute: 30
              to:
                hour: 14
                minute: 30
            - day: wednesday
              state: 'on'
            - day: thursday
              state: 'on'
            - day: friday
              state: custom
              from:
                hour: 12
                minute: 30
              to:
                hour: 14
                minute: 30
            - day: saturday
              state: 'off'
            - day: sunday
              state: 'off'
    GetClusterResponse:
      type: object
      required:
        - id
        - name
        - description
        - configurationType
        - connectionString
        - cloudProvider
        - couchbaseServer
        - serviceGroups
        - availability
        - support
        - currentState
        - audit
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the cluster created.
        appServiceId:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the linked App Service.
        name:
          type: string
          description: Name of the cluster (up to 256 characters).
          example: Test Cluster
          maxLength: 256
        description:
          type: string
          description: Description of the cluster (up to 1024 characters).
          example: Description of the cluster
          maxLength: 1024
        configurationType:
          $ref: '#/components/schemas/ConfigurationType'
        connectionString:
          type: string
          description: ConnectionString specifies the Capella database endpoint for your client connection.
          example: couchbases://cb.irxmynm6vekhe5.cloud.couchbase.com
        cloudProvider:
          $ref: '#/components/schemas/CloudProvider'
        couchbaseServer:
          $ref: '#/components/schemas/CouchbaseServer'
        serviceGroups:
          type: array
          items:
            $ref: '#/components/schemas/ServiceGroup'
        availability:
          $ref: '#/components/schemas/Availability'
        support:
          $ref: '#/components/schemas/GetClusterSupport'
        currentState:
          $ref: '#/components/schemas/CurrentState'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
        cmekId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the CMEK Key.
        enablePrivateDNSResolution:
          type: boolean
    GetClusterSupport:
      type: object
      required:
        - plan
        - timezone
      properties:
        plan:
          $ref: '#/components/schemas/SupportPlan'
        timezone:
          $ref: '#/components/schemas/SupportTimezone'
    GetClustersResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetClusterResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetCollectionResponse:
      type: object
      properties:
        name:
          type: string
          description: Name of the collection.
          example: airport
        maxTTL:
          type: integer
          description: Max TTL of the collection.
    GetCollectionsResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetCollectionResponse'
    GetColumnarAnalyticsBackupResponse:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
          description: The time the backup was created.
        databaseSize:
          type: integer
          format: uint64
          description: The size of the database at the time of the backup.
        type:
          type: string
          description: The type of backup.
        retention:
          type: integer
          description: The retention period for the backup.
        expiration:
          type: string
          format: date-time
          description: The time the backup will expire.
        progress:
          $ref: '#/components/schemas/ColumnarAnalyticsBackupProgress'
        region:
          type: string
          description: The region where the backup is stored.
        id:
          type: string
          description: The unique identifier for the backup.
    GetColumnarAnalyticsBackupScheduleResponse:
      type: object
      properties:
        interval:
          type: integer
          description: Represents the time interval in hours.
          example: 4
        retention:
          type: integer
          description: Represents interval in hours to retain the backup.
          example: 24
        startTime:
          type: string
          format: date-time
          description: Represents the start time in ISO 8601 format.
          example: '2024-07-08T17:00:00+00:00'
    GetColumnarAnalyticsClusterResponse:
      type: object
      required:
        - id
        - name
        - cloudProvider
        - region
        - nodes
        - currentState
        - support
        - compute
        - availability
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: UUID of the analytics cluster.
        name:
          type: string
          example: My-first-analytics-cluster
          description: Name of the analytics cluster
          maxLength: 256
        description:
          type: string
          example: I won him in a game of hook a duck at a carnival
          description: The description of the analytics cluster.
          maxLength: 1024
        cloudProvider:
          type: string
          example: aws
          description: Cloud provider selection is currently limited to Amazon Web Services (AWS).
        region:
          type: string
          example: us-east-2
          description: Which region should the analytics cluster be deployed in.
        nodes:
          type: integer
          example: 3
          description: The number of nodes.
          minimum: 1
          maximum: 32
        currentState:
          $ref: '#/components/schemas/CurrentColumnarState'
        support:
          $ref: '#/components/schemas/ColumnarSupport'
        compute:
          $ref: '#/components/schemas/Compute'
        availability:
          $ref: '#/components/schemas/Availability'
    GetColumnarAnalyticsClustersResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetColumnarAnalyticsClusterResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetColumnarAnalyticsRestoreResponse:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the restore.
        createdAt:
          type: string
          format: date-time
          description: The time the restore was created.
        status:
          type: string
          description: The status of the restore.
        restoreEnd:
          type: string
          format: date-time
          description: The time the restore ended.
        restoreTo:
          type: string
          description: The destination of the restore.
        snapshot:
          type: string
          format: date-time
          description: The snapshot used for the restore.
    GetConnectionStringResponse:
      type: object
      description: Response for get connection string request.
      properties:
        connectionString:
          type: string
          example: https://abcdefgh.ai.com
    GetCycleResponse:
      type: object
      required:
        - cycleID
        - createdAt
      properties:
        cycleID:
          type: string
          format: uuid
          description: The ID of the cycle.
        createdAt:
          type: string
          format: date-time
          description: |
            The RFC3339 timestamp representing the time at which first backup was created in the cycle.
          example: '2021-09-01T12:34:56Z'
    GetCyclesResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetCycleResponse'
    GetDatabaseCredentialResponse:
      type: object
      required:
        - id
        - name
        - access
        - audit
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the database credential created.
        name:
          type: string
          description: Name of the database credential created (up to 256 characters).
          example: ReadInventory
          maxLength: 256
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
        access:
          type: array
          items:
            $ref: '#/components/schemas/Access'
    GetDatabaseCredentialsResponse:
      type: object
      required:
        - cursor
        - data
      properties:
        cursor:
          $ref: '#/components/schemas/Cursor'
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetDatabaseCredentialResponse'
    GetEmptyConfigurationResponse:
      type: object
    GetEventResponse:
      type: object
      required:
        - id
        - source
        - key
        - severity
        - timestamp
      properties:
        id:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: UUID for this instance of an Event.
          format: uuid
        source:
          type: string
          example: cp-jobs
          description: Identifies the originator of the event.
        key:
          type: string
          example: cluster_deletion_completed
          description: Defines the specific kind of Event.
        severity:
          type: string
          example: info
          description: Severity of the event.
        timestamp:
          type: string
          format: date-time
          example: '2024-04-29T09:00:23.475779856Z'
          description: Time when the event was emitted.
        projectId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          format: uuid
          description: ProjectID this Event refers to.
        projectName:
          type: string
          example: example-project
          description: Name of the project at the time of event emission.
        clusterId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          format: uuid
          description: ClusterID this Event refers to.
        clusterName:
          type: string
          example: example-cluster
          description: Name of the cluster at the time of event emission.
        appServiceId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          format: uuid
          description: SyncGatewayID this Event refers to.
        appServiceName:
          type: string
          example: sample-appservice
          description: Name of the sync gateway at the time of event emission.
        userId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: User id that initiated the request for this Event.
        userName:
          type: string
          example: john
          description: Name of the associated user at the time of event emission.
        userEmail:
          type: string
          example: john@example.com
          description: Email of the associated user at the time of event emission.
        sessionId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          format: uuid
          description: User that initiated the request for this Event.
        requestId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          format: uuid
          description: RequestID for an Event.
        kv:
          type: object
          description: Key-value pairs for additional event data.
        summary:
          type: string
          example: Summary of the event occurred
          description: Metadata.SummaryTemplate rendered for this event.
        incidentIds:
          type: array
          items:
            type: string
            example: ffffffff-aaaa-1414-eeee-000000000000
            format: uuid
          description: Group events related to an alert incident.
        occurrenceCount:
          type: integer
          example: 2
          description: Number of times the alert has fired within this "incident".
        imageURL:
          type: string
          example: https://example.com
          description: Rendered chart image to display for an Alert Event.
        alertKey:
          type: string
          example: cluster_down_example
          description: Populated on demand based on the Event.Key and select labels in KV.
    GetEventsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetEventResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetLanguageModelAPIKeyResponse:
      type: object
      properties:
        keyId:
          type: string
          description: Unique identifier for the Language Model API key
          example: 60a95d98-8660-488c-a1e0-25b90e926a1e
        name:
          type: string
          description: Name of the Language Model API key
          example: MyLanguageModelAPIKey
        description:
          type: string
          description: Description of the Language Model API Key
          example: API key for accessing GPT-4 models
        expiry:
          type: number
          format: float
          description: Expiry of the API key in number of days. Maximum value is 365 days.
          example: 180
        allowedCIDRs:
          type: array
          description: List of IP addresses or CIDR blocks that are allowed to use this API key.
          items:
            type: string
            example: 192.168.1.0/24
          example:
            - 192.168.1.0/24
            - 10.0.0.0/8
        allowedModels:
          type: array
          description: List of allowed models for this API key. Returns "*" if all models in the region are allowed, or specific model IDs if restricted.
          items:
            type: object
            properties:
              id:
                type: string
                description: Unique identifier for the model
                example: 5ca127fe-49da-4a6a-aef9-08393b97643f
              name:
                type: string
                description: Name of the model
                example: GPT-4
            required:
              - id
              - name
          example:
            - id: 5ca127fe-49da-4a6a-aef9-08393b97643f
              name: GPT-4
            - id: 6db238gf-50eb-5b7b-bfg0-09404c08754g
              name: Claude 3
        region:
          type: string
          description: The region where the API key will be created. The apikey created in a region can access all the models available in that region.
          example: us-east-1
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetLanguageModelResponse:
      type: object
      description: Response schema for getting a language model
      properties:
        model:
          type: object
          properties:
            id:
              type: string
              format: uuid
              description: Unique identifier for the language model.
              example: fffffffff-aaaa-1414-eeee-000000000000
            name:
              type: string
              description: Name of the deployed model.
              example: my-new-model
            config:
              $ref: '#/components/schemas/Config'
            cloudConfig:
              $ref: '#/components/schemas/CloudConfig'
            status:
              type: string
              description: Current status of the deployed model. Would be one of the following - deploying, destroying, deployFailed, destroyFailed, pausing, pauseFailed, paused, resuming, resumeFailed.
              example: deploying
            usageMetrics:
              $ref: '#/components/schemas/UsageMetrics'
            connectionString:
              type: string
              description: The endpoint URL for the model.
              example: http://endpoint.com
            audit:
              $ref: '#/components/schemas/CouchbaseAuditData'
            actions:
              $ref: '#/components/schemas/Actions'
    GetLanguageModelsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetLanguageModelResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetLogStreamingResponse:
      type: object
      properties:
        outputType:
          type: string
          enum:
            - datadog
            - generic_http
            - sumologic
            - loki
            - elastic
            - splunk
            - dynatrace
          description: The log collector that is configured for the App Service.
          example: datadog
        configState:
          type: string
          enum:
            - disabled
            - disabling
            - enabled
            - enabling
            - paused
            - pausing
            - errored
          description: |
            The current configuration state of log streaming for the App Service. This indicates if log streaming has been set up on the nodes.

            Use the streamingState field to determine whether log streaming is actively streaming logs or not.
          example: enabled
        streamingState:
          type: string
          enum:
            - unknown
            - unsupported
            - healthy
            - degraded
            - unhealthy
          description: |
            This indicates if logs are being successfully streamed from the App Service nodes.

            The states meanings are:
              - unknown - There is not enough data for us to determine if successfully streaming. Make sure the config state is enabled, that logs have been generated for the log levels and keys selected for the App Endpoints, then wait and check again.
              - unsupported - The App Service version does not support the ability to determine if successfully streaming. Upgrade the App Service to version 3.3.2-2.0.0 or above to enable state checking.
              - healthy: Logs are being successfully streamed from all nodes.
              - degraded: At least one node has failed to stream logs. This could mean a transient problem streaming to the log collector, so check your log collector health.
              - unhealthy: All nodes are failing to stream logs. This could indicate a problem to contact the log collector, so make sure you have the right credentials setup.

            In case of a configuration change (e.g. credential change) or an error occurring while streaming logs, the streaming state may temporarily reflect the previous status for a few minutes, before transitioning to the correct state.
          example: healthy
    GetNetworkPeeringRecordResponse:
      type: object
      required:
        - id
        - name
        - status
        - commands
        - providerConfig
        - audit
      properties:
        id:
          description: The ID is the unique UUID generated when a VPC record is created.
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
        name:
          description: Name of the peering relationship.
          type: string
          example: VPCPeerTest
        status:
          description: Status communicates the state of the VPC peering relationship. It is the state and reasoning for VPC peer.
          $ref: '#/components/schemas/PeeringStatus'
        commands:
          description: Commands contains the list of commands that the user must execute in order to complete the association of the network. For Azure, please refer to the *Get Azure VNet Peering CLI Command* API to fetch the role assignment command to be run in the Azure CLI.
          type: array
          items:
            type: string
        providerConfig:
          description: |
            This provides details about the configuration and the ID of the VPC peer on AWS, GCP, or Azure.
          anyOf:
            - $ref: '#/components/schemas/AWS'
            - $ref: '#/components/schemas/GCP'
            - $ref: '#/components/schemas/AZURE'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetOrganizationResponse:
      type: object
      required:
        - id
        - name
        - description
        - audit
        - preferences
      properties:
        id:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: A GUID4 identifier of the organization.
          format: uuid
        name:
          type: string
          example: My-Organization
          description: The name of the organization.
        subdomain:
          type: string
          description: The new name of the subdomain for the organization.
          example: abc
          maxLength: 30
        description:
          type: string
          example: The description of the organization.
          description: The description of a particular organization.
        preferences:
          $ref: '#/components/schemas/Preferences'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetOrganizationsResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetOrganizationResponse'
    GetPrivateEndpointServiceConnectionResponse:
      type: object
      required:
        - endpointId
        - status
      properties:
        endpointId:
          type: string
          description: endpoint id
          example: vpce-000000000000aaaaa
        status:
          type: string
          description: satus of the private endpoint connection
          enum:
            - pending
            - pendingAcceptance
            - linked
            - rejected
            - failed
            - unrecognized
          example: linked
    GetPrivateEndpointServiceResponse:
      type: object
      required:
        - enabled
        - status
        - serviceName
        - privateDns
      properties:
        enabled:
          type: boolean
          description: Returns true if private endpoint is enabled
          example: true
        status:
          type: string
          description: status of the private endpoint
          enum:
            - idle
            - unknown
            - enabling
            - enabled
            - enableFailed
            - disabling
            - disabled
            - disableFailed
        serviceName:
          type: string
          description: AWS private DNS service name
          example: com.amazonaws.vpce.us-east-1.vpce-svc-0399b9a3337de6847
        privateDns:
          type: string
          description: Private endpoint DNS name
          example: ghfv2g8fyedebnae.pl.cloud.couchbase.com/
    GetPrivateEndpointServiceStatusResponse:
      type: object
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          description: The status of the private endpoint service.
          example: true
        routes:
          allOf:
            - $ref: '#/components/schemas/PrivateEndpointRoutes'
    GetPrivateEndpointsResponse:
      type: object
      required:
        - privateEndpointDNS
        - endpoints
      properties:
        privateEndpointDNS:
          type: string
          example: abcdef123456.pl.cloud.couchbase.com
        endpoints:
          type: array
          items:
            $ref: '#/components/schemas/PrivateEndpoint'
    GetProjectLevelCloudSnapshotBackupResponse:
      type: object
      properties:
        clusterId:
          type: string
          description: The unique identifier of the cluster.
          example: ffffffff-aaaa-1414-eeee-000000000000
        clusterName:
          type: string
          description: The name assigned to the cluster.
          example: example-cluster
        creationDateTime:
          type: string
          description: The date and time when the cluster was created, in ISO 8601 format.
          format: date-time
          example: '2024-11-14T14:14:22.122057304Z'
        createdBy:
          type: string
          description: The identifier or name of the user who created the cluster.
          example: user@company.com
        currentStatus:
          type: string
          description: The current operational status of the cluster (e.g., healthy, destroyed, scaling).
          example: healthy
        cloudProvider:
          type: string
          description: The cloud service provider hosting the cluster (e.g., AWS, Azure, GCP).
          example: hostedAWS
        region:
          type: string
          description: The geographical region where the cluster is deployed.
          example: us-east-1
        mostRecentSnapshot:
          $ref: '#/components/schemas/GetCloudSnapshotBackupResponse'
          description: Details of the most recent snapshot backup associated with the cluster.
        oldestSnapshot:
          $ref: '#/components/schemas/GetCloudSnapshotBackupResponse'
          description: Details of the oldest snapshot backup associated with the cluster.
    GetProjectResponse:
      type: object
      required:
        - id
        - description
        - name
        - audit
      properties:
        id:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: A GUID4 identifier of the project.
          format: uuid
        description:
          type: string
          example: The description of my awesome project
          description: The description of a particular project.
        name:
          type: string
          example: My-Awesome-Project
          description: The name of the project.
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetProjectsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetProjectResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetProviderResponse:
      type: object
      properties:
        name:
          type: string
          description: The name of the provider.
          example: my-aws-s3-provider
        type:
          type: string
          description: The type of the provider.
          example: awsS3
        configuration:
          type: object
          description: The credentials for the provider.
          oneOf:
            - $ref: '#/components/schemas/GetS3ConfigurationResponse'
            - $ref: '#/components/schemas/GetEmptyConfigurationResponse'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetReplicationJobResponse:
      type: object
      required:
        - jobId
        - state
        - lastUpdatedTimestamp
      properties:
        jobId:
          type: string
          description: The ID of the job.
          example: 3d4354af-6271-4ba3-aeba-469820d96d12
        state:
          type: string
          description: The state of the job.
          enum:
            - pending
            - processing
            - complete
            - failed
            - skipped
            - killed
            - notfound
            - unknown
          example: pending
        retryNumber:
          type: integer
          description: The attempt number for the job.
          example: 1
        lastError:
          type: string
          description: The last error message if the job encountered an error.
          example: fake error
        replicationId:
          type: string
          description: The ID of the created replication. Only present if the job is complete.
          example: UmlqdSBpcyBhd2Vzb21l
        reverseReplicationId:
          type: string
          description: The ID of the inverse replication if the direction is twoWay.
          example: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI
        lastUpdatedTimestamp:
          type: string
          format: date-time
          description: The timestamp of the last modification of the job record.
          example: '2021-09-01T12:34:56Z'
    GetReplicationResponse:
      type: object
      required:
        - id
        - status
        - changesLeft
        - source
        - target
        - direction
        - audit
      properties:
        id:
          type: string
          description: The ID of the specified replication.
          example: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI=
        status:
          type: string
          description: The status of the replication.
          enum:
            - pending
            - pausing
            - failed
            - paused
            - running
          example: running
        changesLeft:
          type: integer
          description: The number of remaining mutations to the replication.
          example: 100
        error:
          type: string
          description: The error message if the replication has failed.
          example: Replication failed because of a timeout
        source:
          $ref: '#/components/schemas/replicationSource'
        target:
          $ref: '#/components/schemas/replicationTarget'
        mappings:
          $ref: '#/components/schemas/mappings'
        direction:
          type: string
          description: Direction specifies the replication flow — whether it's oneWay (source to target only) or twoWay (also from target back to source).
          enum:
            - oneWay
            - twoWay
          default: oneWay
        priority:
          type: string
          description: |
            Priority represents the resource allocation to the replication.

            - low: Resource constraints are applied when competing with high priority replications
            - medium: Resource constraints are applied during initial processing when competing with high priority replications, then operates as high priority
            - high: No resource constraints are applied (default priority)
          enum:
            - low
            - medium
            - high
          default: high
        networkUsageLimit:
          type: integer
          default: 0
          description: Network usage limit in MiB per second. 0 means unlimited.
        filter:
          $ref: '#/components/schemas/getFilter'
        audit:
          $ref: '#/components/schemas/ReplicationAuditData'
    GetS3ConfigurationResponse:
      type: object
      properties:
        awsRegion:
          type: string
          description: The AWS region the S3 bucket is located in.
        bucket:
          type: string
          description: The name of the S3 bucket.
        folderPath:
          type: string
          description: The path to the folder in the S3 bucket where the files are stored. Empty denotes the root folder.
    GetScheduledBackupResponse:
      description: Backup schedule type.
      type: object
      required:
        - type
        - clusterID
        - bucketId
        - weeklySchedule
      properties:
        type:
          type: string
          example: weekly
        clusterID:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the cluster.
        bucketId:
          type: string
          example: dGVzdA
          description: The ID of the bucket. This is the Base64 encoding of the bucket name.
        weeklySchedule:
          $ref: '#/components/schemas/WeeklySchedule'
    GetScopeResponse:
      type: object
      properties:
        name:
          type: string
          description: Name of the scope.
          example: inventory
        collections:
          type: array
          items:
            $ref: '#/components/schemas/Collection'
    GetScopesResponse:
      type: object
      required:
        - scopes
      properties:
        scopes:
          type: array
          items:
            $ref: '#/components/schemas/Scope'
    GetStructuredWorkflowResponse:
      type: object
      required:
        - source
        - targetCouchbaseKeyspace
        - structuredDataProcessingConfig
        - vectorizationConfig
      properties:
        source:
          $ref: '#/components/schemas/IntegrationConfig'
        targetCouchbaseKeyspace:
          $ref: '#/components/schemas/CouchbaseKeyspace'
        structuredDataProcessingConfig:
          description: Configuration for structured data processing.
          type: object
          required:
            - jsonType
          properties:
            keyFieldName:
              type: string
              description: |
                The name of the field that will be used as the key for the Capella document. Random UUID will be generated if not provided.
              example: document_id
            jsonType:
              type: string
              description: |
                The type of JSON that has to be processed by the structured data processing workflow.
              enum:
                - json
                - jsonlist
                - jsonlines
              example: jsonlines
        vectorizationConfig:
          $ref: '#/components/schemas/VectorizationConfig'
    GetUnstructuredWorkflowResponse:
      type: object
      required:
        - source
        - targetCouchbaseKeyspace
        - unstructuredDataProcessingConfig
        - vectorizationConfig
      properties:
        source:
          $ref: '#/components/schemas/IntegrationConfig'
        targetCouchbaseKeyspace:
          $ref: '#/components/schemas/CouchbaseKeyspace'
        unstructuredDataProcessingConfig:
          description: Configuration for unstructured data processing.
          type: object
          required:
            - chunkingStrategy
          properties:
            pageNumbers:
              type: array
              description: |
                The page range of the file which has to be processed.
                If not provided, all pages will be processed.
                Should be an array of size 2, with the first element being the start page and the second element being the end page.
              example:
                - 3
                - 16
              items:
                type: integer
            exclusions:
              type: array
              description: |
                The sections of the file which have to be excluded from the unstructured data processing workflow.
                Should be an array of strings, each representing a section of the file to be excluded.
                The possible values are:
                  - Header
                  - Footer
                  - Table
                  
                If not provided, all sections will be processed.
              example:
                - header
                - footer
              items:
                type: string
                enum:
                  - header
                  - footer
                  - table
            enableOCR:
              type: boolean
              description: |
                Whether to enable OCR scanning for the file.
                If not provided, OCR will be disabled.
              example: true
              default: false
            chunkingStrategy:
              type: object
              description: |
                The strategy to use for chunking the file.
              properties:
                strategyType:
                  type: string
                  enum:
                    - RECURSIVE_SPLITTER
                    - SEMANTIC_SPLITTER
                    - PARAGRAPH_SPLITTER
                    - SENTENCE_SPLITTER
                    - FIXED_TOKEN_SPLITTER
                chunkSize:
                  type: integer
                  description: |
                    The size of the chunks to be created.
                  example: 1000
                chunkOverlap:
                  type: integer
                  description: |
                    The overlap between the chunks.
                  example: 100
            objectMetadataExtractionConfig:
              type: object
              description: |
                Configuration for extracting metadata from S3 objects.
                This allows you to copy system-defined and user-defined metadata from S3 objects
                into the processed documents.
              properties:
                systemMetadataKeys:
                  type: array
                  description: |
                    List of S3 system metadata keys to extract from objects.
                    If empty array, all system metadata is extracted.
                    If null/omitted, no system metadata is extracted.
                  example:
                    - ContentType
                    - LastModified
                  items:
                    type: string
                userMetadataKeys:
                  type: array
                  description: |
                    List of user-defined metadata keys to extract from S3 objects.
                    If empty array, all user metadata is extracted.
                    If null/omitted, no user metadata is extracted.
                  example:
                    - author
                    - department
                    - version
                  items:
                    type: string
        vectorizationConfig:
          $ref: '#/components/schemas/VectorizationConfig'
    GetUserResponse:
      type: object
      required:
        - id
        - name
        - email
        - status
        - inactive
        - organizationId
        - organizationRoles
        - audit
      properties:
        id:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The UUID of the user created.
        name:
          type: string
          example: alex
          description: The name of the user.
          maxLength: 128
        email:
          $ref: '#/components/schemas/Email'
        status:
          type: string
          description: |
            Depicts user status whether they are verified or not.
            - verified: It reflects a verified state for an email address where the user has proven that they have access to the email account.
            - not-verified: It reflects an unverified or pending verification state.
            - pending-primary: It reflects an unverified primary email address
          enum:
            - verified
            - not-verified
            - pending-primary
          example: not-verified
        inactive:
          type: boolean
          description: Depicts whether the user has accepted the invite for the organization.
          example: false
        organizationId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: A GUID4 identifier of the tenant.
        organizationRoles:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationRoles'
        lastLogin:
          type: string
          format: date-time
          example: '2023-07-17T07:05:39.116124897Z'
          description: Time(UTC) at which user last logged in.
        region:
          type: string
          example: North America
          description: Region of the user.
        timeZone:
          type: string
          example: (UTC -9:00) Alaska Standard Time
          description: Time zone of the user.
        enableNotifications:
          type: boolean
          example: true
          description: After enabling email notifications for your account, you will start receiving email notification alerts from all databases in projects you are a part of.
        expiresAt:
          type: string
          format: date-time
          example: '2023-07-17T07:05:39.116124897Z'
          description: Time at which user expires.
        resources:
          type: array
          items:
            $ref: '#/components/schemas/Resource'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetUsersResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetUserResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetVectorizationWorkflowResponse:
      type: object
      required:
        - targetCouchbaseKeyspace
        - vectorizationConfig
      properties:
        targetCouchbaseKeyspace:
          $ref: '#/components/schemas/CouchbaseKeyspace'
        vectorizationConfig:
          $ref: '#/components/schemas/VectorizationConfig'
    GetWorkflowResponse:
      type: object
      required:
        - id
        - name
        - type
        - configuration
        - audit
      properties:
        id:
          type: string
          description: |
            The unique identifier for the workflow.
          example: ffffffff-aaaa-1414-eeee-000000000000
        name:
          type: string
          description: The name of the workflow.
          example: my-workflow-name
        type:
          type: string
          description: |
            The type of workflow.
          enum:
            - structuredDataProcessing
            - unstructuredDataProcessing
            - vectorization
        configuration:
          oneOf:
            - $ref: '#/components/schemas/GetStructuredWorkflowResponse'
            - $ref: '#/components/schemas/GetUnstructuredWorkflowResponse'
            - $ref: '#/components/schemas/GetVectorizationWorkflowResponse'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    GetWorkflowRunProcessedFilesResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              fileName:
                type: string
                description: Name of the file.
                example: file1.pdf
              filePath:
                type: string
                description: Path of the file.
                example: documents/reports
              fileStatus:
                type: string
                enum:
                  - failed
                  - success
                  - skipped
                description: Status of the file in the workflow run.
                example: skipped
              error:
                type: object
                description: Error details for failed or skipped files.
                properties:
                  code:
                    type: string
                    description: Error code indicating the type of failure or skip reason.
                    example: UNSUPPORTED_FILE_FORMAT
                  message:
                    type: string
                    description: Detailed description explaining why the file failed or was skipped.
                    example: 'FileFormat not supported for file: report.xyz'
              fileMetadata:
                type: object
                additionalProperties:
                  type: string
                description: User-defined S3 metadata associated with the file.
        cursor:
          $ref: '#/components/schemas/Cursor'
    GetWorkflowRunResponse:
      type: object
      required:
        - id
        - status
        - createdAt
        - createdByUserID
      properties:
        id:
          type: string
          description: |
            The unique identifier for the workflow run.
        status:
          type: string
          enum:
            - deploying
            - running
            - completed
            - partiallyCompleted
            - failed
            - stopping
          description: |
            The current state of the workflow run:
              * `deploying`: The workflow run is being deployed
              * `running`: The workflow run is executing
              * `completed`: The workflow run finished successfully
              * `partiallyCompleted`: The workflow run finished with some errors
              * `failed`: The workflow run failed
              * `stopping`: The workflow run is being stopped

            **Actions:**
              * To retry a failed workflow run, send a POST request to `/aiServices/workflows/{workflowId}`
              * To retrieve all processed files (including both successful and failed), send a GET request to `/aiServices/workflows/{workflowId}/runs/{runId}/processedFiles`
        totalFiles:
          type: integer
          description: Total number of files that are picked up by the workflow run.
        processedFiles:
          type: integer
          description: Number of files that have been processed in the workflow run.
        erroredFiles:
          type: integer
          description: Number of files that errored out while processing in the workflow run.
        createdAt:
          type: string
          description: |
            The date and time when the workflow run was created.
          format: timestamp
          example: '2021-01-01T00:00:00Z'
        createdByUserID:
          type: string
          description: |
            The unique identifier for the user who created the workflow run.
    GetWorkflowRunsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetWorkflowRunResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    Hrefs:
      type: object
      required:
        - first
        - last
        - previous
        - next
      properties:
        first:
          type: string
          format: uri
          description: The base URL, endpoint, and path parameters required to fetch the first page of results.
          example: https://cloud.couchbase.com/v4/users?page=1&perPage=10
        last:
          type: string
          format: uri
          description: The base URL, endpoint, and path parameters required to fetch the last page of results.
          example: https://cloud.couchbase.com/v4/users?page=1&perPage=10
        previous:
          type: string
          format: uri
          description: |
            The base URL, endpoint, and path parameters required to fetch the previous page of results.
            Empty if there is no previous page.
          example: https://cloud.couchbase.com/v4/users?page=1&perPage=10
        next:
          type: string
          format: uri
          description: |
            The base URL, endpoint, and path parameters required to fetch the next page of results.
            Empty if there is no next page.
          example: https://cloud.couchbase.com/v4/users?page=1&perPage=10
    ImportFilter:
      type: string
      description: The Javascript function used to specify the documents in this collection that are to be imported by the App Endpoint. By default, all documents in corresponding collection are imported.
      example: ' function(doc) { if (doc.type == ''mobile'') { return true; } }'
    IndexBuildStatusResponse:
      type: object
      required:
        - status
      properties:
        status:
          type: string
          enum:
            - Created
            - Ready
            - Building
          description: |
            The possible values for index build status are:

            Created:  index is created and ready to start the build

            Ready:    build completed and index is active

            Building: index has started building
          example: Ready
    IndexDDLRequest:
      type: object
      required:
        - definition
      properties:
        definition:
          type: string
          description: |
            The index DDL statement.  This can be a CREATE/DROP/ALTER/BUILD statement.

            Multiple delimited queries are not allowed.

            It is recommended to use deferred index builds, especially for larger indexes. When creating indexes in bulk, we do not recommend sending requests to create all of them at once. 
            Instead, we strongly recommend creating indexes in batches of 100 or less.
          example: create index idx1 on default(c0)
    IndexDDLResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            required:
              - msg
            properties:
              msg:
                type: string
                description: The error message
                example: 'Index Not Found - cause: GSI index idx1 not found.'
    IndexDefinitionsResponse:
      type: object
      required:
        - indexName
        - definition
      properties:
        indexName:
          type: string
          example: def_icao
        definition:
          type: string
          example: CREATE INDEX `def_icao` ON `travel-sample`(`icao`)
    IndexPropertiesResponse:
      type: object
      required:
        - defnId
        - indexName
        - bucket
        - scope
        - collection
        - isPrimary
        - secExprs
        - where
        - numReplica
        - status
      properties:
        defnId:
          type: integer
          example: 14488149950011906000
        indexName:
          type: string
          example: idx10
        bucket:
          type: string
          example: travel-sample
        scope:
          type: string
          example: inventory
        collection:
          type: string
          example: airline
        isPrimary:
          type: boolean
          example: false
        secExprs:
          type: array
          items:
            type: string
          example:
            - destinationairport
            - sourceairport
        where:
          type: string
          example: name is valued
        numReplica:
          type: integer
          example: 1
        status:
          type: string
          example: Ready
    IntegrationConfig:
      type: object
      required:
        - name
        - providerId
      properties:
        name:
          type: string
          description: The name of the Capella integration used for the workflow.
          example: provider1
        providerId:
          type: string
          description: |
            The unique identifier for the provider of the integration. This is used to identify the integration in the Capella platform.
          example: provider1-ffffffff-aaaa-1414-eeee-000000000000
    ListAdminUsersResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/AppServiceAdminUser'
        cursor:
          $ref: '#/components/schemas/Cursor'
      example:
        data:
          - id: eeeeeeee-aaaa-1414-eeee-999999999999
            tenantId: ffffffff-aaaa-1414-eeee-000000000000
            projectId: dddddddd-cccc-1414-eeee-77777777777
            clusterId: gggggggg-zzzz-1414-eeee-55555555555
            name: admin
            endpoints:
              - appEndpoint1
              - appEndpoint2
            accessAllEndpoints: false,
            audit:
              createdBy: ffffffff-aaaa-1414-eeee-000000000000
              createdAt: '2024-09-01T12:34:56Z'
              modifiedBy: ''
              modifiedAt: '2024-09-01T12:34:56Z'
              version: 1
          - id: eeeeeeee-gggg-1456-tttt-999999999999
            tenantId: ffffffff-aaaa-1414-eeee-000000000000
            projectId: dddddddd-cccc-1414-eeee-77777777777
            clusterId: gggggggg-zzzz-1414-eeee-55555555555
            name: admin
            endpoints:
              - appEndpoint1
              - appEndpoint2
            accessAllEndpoints: false
            audit:
              createdBy: ffffffff-aaaa-1414-eeee-000000000000
              createdAt: '2024-09-01T12:34:56Z'
              modifiedBy: ''
              modifiedAt: '2024-09-01T12:34:56Z'
              version: 1
        cursor:
          pages:
            page: 2
            next: 3
            previous: 1
            last: 10
            perPage: 10
            totalItems: 10
          hrefs:
            first: https://cloud.couchbase.com/v4/users?page=1&perPage=10
            last: https://cloud.couchbase.com/v4/users?page=1&perPage=10
            previous: https://cloud.couchbase.com/v4/users?page=1&perPage=10
            next: https://cloud.couchbase.com/v4/users?page=1&perPage=10
    ListAppEndpointsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetAppEndpointResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListAuditExportDocs:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetAuditExportDocResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListBackupsResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetBackupByIDResponse'
    ListCloudSnapshotBackupsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetCloudSnapshotBackupResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListCloudSnapshotRestoresResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetCloudSnapshotRestoreResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListClusterReplicationsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/replicationSummary'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListColumnarAnalyticsBackupsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetColumnarAnalyticsBackupResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListColumnarAnalyticsRestoresResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetColumnarAnalyticsRestoreResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListIndexDefinitionsResponse:
      type: object
      required:
        - definitions
      properties:
        definitions:
          type: array
          items:
            $ref: '#/components/schemas/IndexDefinitionsResponse'
    ListLanguageModelAPIKeysResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetLanguageModelAPIKeyResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListNetworkPeeringRecordsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ListSingleNetworkPeeringRecord'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListOIDCProvidersResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/OIDCProvider'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListPrivateEndpointServiceConnectionsResponse:
      type: object
      required:
        - endpoints
      properties:
        endpoints:
          type: array
          items:
            $ref: '#/components/schemas/GetPrivateEndpointServiceConnectionResponse'
    ListProjectLevelCloudSnapshotResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetProjectLevelCloudSnapshotBackupResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListProjectReplicationsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/replicationSummary'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListProvidersResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: The ID of the provider.
                example: provider1-ffffffff-aaaa-1414-eeee-000000000000
              name:
                type: string
                description: The name of the provider.
                example: my-aws-s3-provider
              type:
                type: string
                description: The type of the provider.
                example: awsS3
              configuration:
                type: object
                description: The credentials for the provider.
                oneOf:
                  - $ref: '#/components/schemas/GetS3ConfigurationResponse'
                  - $ref: '#/components/schemas/GetEmptyConfigurationResponse'
              audit:
                $ref: '#/components/schemas/CouchbaseAuditData'
        cursor:
          $ref: '#/components/schemas/Cursor'
    ListSingleNetworkPeeringRecord:
      type: object
      required:
        - id
        - name
        - status
        - providerConfig
        - audit
      properties:
        id:
          description: The ID is the unique UUID generated when a VPC record is created.
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
        name:
          description: Name of the peering relationship.
          type: string
          example: VPCPeerTest
        status:
          description: Status communicates the state of the VPC peering relationship. It is the state and reasoning for VPC peer.
          $ref: '#/components/schemas/PeeringStatus'
        providerConfig:
          description: |
            This provides details about the configuration and the ID of the VPC peer on AWS, GCP, or Azure.
          anyOf:
            - $ref: '#/components/schemas/AWS'
            - $ref: '#/components/schemas/GCP'
            - $ref: '#/components/schemas/AZURE'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    ListWorkflowsResponse:
      type: object
      required:
        - data
        - cursor
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/GetWorkflowResponse'
        cursor:
          $ref: '#/components/schemas/Cursor'
    Method:
      type: string
      description: |
        The mechanism of the backup.
        1. Incremental backups include the data that has changed since the last scheduled backup.
        2. Full backup includes all bucket data from the time the backup was created.
      enum:
        - incremental
        - full
      example: incremental
    Node:
      type: object
      required:
        - compute
        - disk
      properties:
        compute:
          $ref: '#/components/schemas/Compute'
        disk:
          oneOf:
            - $ref: '#/components/schemas/DiskAWS'
            - $ref: '#/components/schemas/DiskAzure'
            - $ref: '#/components/schemas/DiskGCP'
          example:
            type: gp3
            storage: 50
            iops: 3000
    OIDCProvider:
      type: object
      required:
        - issuer
        - clientId
      properties:
        issuer:
          type: string
          example: https://example.auth.com
          description: The URL for the OpenID Connect issuer.
        register:
          type: boolean
          example: true
          description: Indicates whether to register a new App Service user account when a user logs in using OpenID Connect.
        clientId:
          type: string
          example: foo_client
          description: The OpenID Connect provider client ID.
        userPrefix:
          type: string
          example: fooOIDC
          description: Username prefix for all users created for this provider
        discoveryUrl:
          type: string
          example: https://foo.com/.well-known/openid-configuration
          description: The URL for the non-standard discovery endpoint.
        usernameClaim:
          type: string
          example: fooAlt
          description: Allows a different OpenID Connect field to be specified instead of the Subject (sub).
        rolesClaim:
          type: string
          example: roles
          description: |
            If set, the value(s) of the given OpenID Connect authentication token claim will be added to the user's roles.
            The value of this claim in the OIDC token must be either a string or an array of strings, any other type will result in an error.
        providerId:
          type: string
          readOnly: true
          description: UUID of the provider.
        isDefault:
          type: boolean
          readOnly: true
          description: Indicates whether this is the default OpenID Connect provider.
        scope:
          type: array
          items:
            type: string
          example:
            - openid
            - email
            - profile
          description: The scope sent for the OpenID Connect request.
          default:
            - openid
            - email
      example:
        issuer: https://foo.com
        register: true
        clientId: foo_client
        userPrefix: fooOIDC
        discoveryUrl: https://foo.com/.well-known/openid-configuration
        usernameClaim: fooAlt
        scope:
          - openid
          - foo
    OIDCProviderID:
      required:
        - providerId
      description: The UUID of the OpenID Connect provider.
      properties:
        providerId:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
    OIDCProviderIDOnly:
      $ref: '#/components/schemas/OIDCProviderID'
    OnTimeBoundary:
      type: object
      description: |
        OnTimeBoundary corresponds to "from" and "to" time boundaries for when the cluster needs to be in the turned on (healthy) state on a day with "custom" scheduling timings.
        The time boundary should be according to the following rules:
          - If the schedule is a non-custom day - with state `on` or `off`, it cannot contain a time boundary.
          - If the schedule is a `custom` day -
              - It should contain the `from` time boundary. If the `to` time boundary is not specified then the default value of 0 hour 0 minute is set and the cluster will be turned on for the entire day from the time set in `from` time boundary.
              - Time boundary should have a valid `hour` value. The valid hour values are from 0 to 23 inclusive.
              - Time boundary should have a valid `minute` value. The valid minute values are 0 and 30.
              - The `from` time boundary should not be later than the `to` time boundary.
              - If the `hour` and `minute` values are not provided for the time boundaries, it is set to a default value of 0 for both. (0 hour 0 minute)
      properties:
        hour:
          type: integer
          description: Hour of the time boundary.
          example: 21
          default: 0
        minute:
          type: integer
          description: Minute of the time boundary.
          example: 30
          default: 0
    OrganizationRoles:
      type: string
      enum:
        - organizationOwner
        - organizationMember
        - projectCreator
      example: projectCreator
      description: |
        Organization roles assigned to the User.

        To learn more, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html).
    Pages:
      type: object
      required:
        - page
        - last
        - perPage
        - totalItems
      properties:
        page:
          description: Current page of results, starting from page 1.
          type: integer
          example: 2
        next:
          description: |
            Number of the next page of results. Not set on the last page.
          type: integer
          example: 3
        previous:
          description: |
            Number of the previous page of results. Not set on the first page.
          type: integer
          example: 1
        last:
          type: integer
          description: Number of the last page of results.
          example: 10
        perPage:
          type: integer
          description: Number of items displayed in each page.
          example: 10
        totalItems:
          type: integer
          description: Total items found by the given query.
          example: 10
    PatchAuditLogStreamingRequest:
      type: object
      required:
        - op
        - path
        - value
      properties:
        op:
          type: string
          description: Type of operation.
          enum:
            - update
        path:
          type: string
          example: /streamingEnabled
          description: |
            Path of resource that needs to be updated.
        value:
          type: boolean
          description: Determines whether audit log streaming is enabled or not.
    PatchEntry:
      type: object
      required:
        - op
        - path
      properties:
        op:
          type: string
          description: Type of operation.
          enum:
            - add
            - remove
        path:
          type: string
          example: /organizationRoles
          description: |
            Path of resource that needs to be updated.

            Organization Roles: `/organizationRoles`

            Resources: `/resources/{resourceId}`

            Resource Roles: `/resources/{resourceId}/roles`
        value:
          oneOf:
            - type: array
              items:
                $ref: '#/components/schemas/OrganizationRoles'
            - type: array
              items:
                $ref: '#/components/schemas/ProjectRoles'
            - $ref: '#/components/schemas/Resource'
    PatchUserRequest:
      type: array
      items:
        $ref: '#/components/schemas/PatchEntry'
    PeeringStatus:
      type: object
      properties:
        state:
          type: string
          example: complete
        reasoning:
          type: string
          example: sample_reasoning
    PostLogStreamingRequest:
      type: object
      required:
        - outputType
        - credentials
      properties:
        outputType:
          type: string
          enum:
            - datadog
            - generic_http
            - sumologic
            - loki
            - elastic
            - splunk
            - dynatrace
          description: The log collector to have logs streamed to.
          example: datadog
        credentials:
          description: The credentials to be used to authenticate with the log collector.
          type: object
          oneOf:
            - $ref: '#/components/schemas/datadog'
            - $ref: '#/components/schemas/sumologic'
            - $ref: '#/components/schemas/generic_http'
            - $ref: '#/components/schemas/elastic'
            - $ref: '#/components/schemas/loki'
            - $ref: '#/components/schemas/splunk'
            - $ref: '#/components/schemas/dynatrace'
    PostSampleBucket:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          enum:
            - travel-sample
            - gamesim-sample
            - beer-sample
          description: |
            The name of the sample dataset to be loaded. The name has to be one of the following sample datasets.

             - travel-sample 
             - gamesim-sample
             - beer-sample 
             
          example: travel-sample
    PostSampleBucketResponse:
      type: object
      required:
        - bucketId
        - name
      properties:
        bucketId:
          type: string
          example: dGVzdA
          description: The ID of the sample data import job. This field will be present for clusters running on server versions above 7.5.
        name:
          type: string
          description: Name of the bucket in which the sample data will be loaded.
          example: travel-sample
    Preferences:
      type: object
      description: Preferences stores preferences for the organization.
      properties:
        sessionDuration:
          type: integer
          format: uint32
          description: Maximum allowed time in seconds inside the organization for a user.
          example: 3600
          default: 7200
    PrivateEndpoint:
      type: object
      required:
        - id
        - status
      properties:
        id:
          type: string
          description: The ID of the private endpoint.
          example: vpce-000000000000aaaaa
        serviceName:
          type: string
          description: The service name associated with the private endpoint.
          example: com.amazonaws.vpce.us-east-1.vpce-svc-000000000000aaaaa
        status:
          type: string
          description: The status of the private endpoint.
          enum:
            - pending
            - pendingAcceptance
            - linked
            - rejected
            - failed
            - unrecognized
          example: linked
    PrivateEndpointRoutes:
      type: object
      description: |
        Routes configuration for private endpoints. Only present when private endpoint service is enabled (`enabled: true`), showing the current state of each route (true if enabled, false if disabled).
      required:
        - xdcr
        - metrics
      properties:
        xdcr:
          type: boolean
          description: Whether XDCR is allowed to work over a Private Endpoint connection. This comes with node count limitations, refer to Capella Docs for more information.
          example: true
          default: false
        metrics:
          type: boolean
          description: Whether Prometheus metrics is allowed to work over a Private Endpoint connection.
          example: false
          default: false
    ProjectRoles:
      type: string
      enum:
        - projectOwner
        - projectManager
        - projectViewer
        - projectDataReaderWriter
        - projectDataReader
      example: projectManager
      description: |
        Project Roles associated with the User.

        To learn more about Project Roles, see [Project Roles](https://docs.couchbase.com/cloud/projects/project-roles.html).
    PutAuditLogStreamingRequest:
      type: object
      required:
        - streamingEnabled
      properties:
        streamingEnabled:
          type: boolean
          description: Determines whether audit log streaming is enabled or not. To start or resume streaming, set this to true. To disable or pause log streaming, set this to false.
        disabledAppEndpoints:
          type: array
          items:
            type: string
          description: List of App Endpoints to be excluded from audit log streaming.
        outputType:
          type: string
          enum:
            - datadog
            - generic_http
            - sumologic
            - loki
            - elastic
            - splunk
            - dynatrace
          description: The type of output for the audit log streaming. Required when starting, resuming or pausing log streaming.
          example: datadog
        credentials:
          description: Secrets for audit log streaming configuration. Required when starting, resuming or pausing log streaming.
          type: object
          oneOf:
            - $ref: '#/components/schemas/datadog'
            - $ref: '#/components/schemas/sumologic'
            - $ref: '#/components/schemas/generic_http'
            - $ref: '#/components/schemas/elastic'
            - $ref: '#/components/schemas/loki'
            - $ref: '#/components/schemas/splunk'
            - $ref: '#/components/schemas/dynatrace'
    Replicas:
      type: integer
      description: |-
        The number of replicas for the bucket.
        To learn more, see [Create a Bucket](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket).
      enum:
        - 1
        - 2
        - 3
      default: 1
    ReplicationAuditData:
      type: object
      required:
        - createdBy
        - createdAt
      properties:
        createdBy:
          type: string
          description: |
            The user who created the replication; this will be a UUID4 ID for standard
            users and will be a string such as "internal-support" for internal
            Couchbase support users.
          example: ffffffff-aaaa-1414-eeee-000000000000
        createdAt:
          type: string
          format: date-time
          description: |
            The RFC3339 timestamp associated with when the replication was initially
            created.
          example: '2021-09-01T12:34:56Z'
    RequestConfig:
      type: object
      required:
        - webhook
      properties:
        webhook:
          $ref: '#/components/schemas/RequestWebhook'
    RequestWebhook:
      type: object
      required:
        - method
        - url
      properties:
        method:
          type: string
          description: Type of API method to be sent when alert is triggered, either 'POST' or 'PUT'.
          example: POST
          enum:
            - POST
            - PUT
        url:
          type: string
          format: uri
          description: The base URL of the webhook integration.
          example: https://company.servicenow.com
        token:
          $ref: '#/components/schemas/ExternalToken'
        basicAuth:
          $ref: '#/components/schemas/BasicAuth'
        headers:
          type: object
          additionalProperties:
            type: string
        exclude:
          $ref: '#/components/schemas/exclude'
    Resource:
      type: object
      required:
        - id
        - roles
      properties:
        type:
          $ref: '#/components/schemas/ResourceType'
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: |
            Id of the project.
        roles:
          type: array
          items:
            $ref: '#/components/schemas/ProjectRoles'
    ResourceBucket:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: The name of the bucket.
          example: travel-sample
        scopes:
          type: array
          description: The scopes under a bucket.
          items:
            $ref: '#/components/schemas/ResourceScope'
    ResourceScope:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          example: inventory
          description: The name of the scope.
        collections:
          type: array
          description: The collections under a scope.
          items:
            type: string
          example:
            - airlines
            - airport
            - tickets
    ResourceType:
      type: string
      enum:
        - project
      default: project
      example: project
      description: |
        Type of the resource.
    ResponseConfig:
      type: object
      required:
        - webhook
      properties:
        webhook:
          $ref: '#/components/schemas/ResponseWebhook'
    ResponseWebhook:
      type: object
      required:
        - method
        - url
      properties:
        method:
          type: string
          description: The API method to use when sending alert notifications to the integrated service. Either 'POST' or 'PUT'.
          example: POST
          enum:
            - POST
            - PUT
        url:
          type: string
          format: uri
          description: The base URL of the webhook integration.
          example: https://company.servicenow.com
        headers:
          type: object
          additionalProperties:
            type: string
        exclude:
          $ref: '#/components/schemas/exclude'
    RestoreId:
      type: string
      example: 53b504e2-3f1e-4601-9e44-c04aa0195057
      description: |
        The id is a unique identifier for a restore.
    ResyncRequest:
      type: object
      properties:
        scopes:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ResyncScopes'
      example:
        scopes:
          scope1:
            - collection1
            - collection2
    ResyncScopes:
      description: Scope name with one or more collection names for which resync is triggered.
      type: array
      items:
        type: string
      example:
        scope1:
          - collection_1
          - collection_2
    ResyncStatus:
      type: object
      required:
        - state
        - startTime
        - docsChanged
        - lastError
        - docsProcessed
      properties:
        state:
          type: string
          description: The status of the current operation.
          enum:
            - running
            - completed
            - stopping
            - stopped
            - error
          example: running
        startTime:
          type: string
          format: date-time
          description: The ISO-8601 date and time the resync operation was started.
          example: '2023-10-12T07:20:50.52Z'
        lastError:
          type: string
          description: The last error that occurred in the resync operation (if any).
        docsChanged:
          type: integer
          format: int32
          description: Number of documents that were changed during the resync operation.
          example: 100
        docsProcessed:
          type: integer
          format: int32
          description: The amount of docs that have been processed so far in the resync operation.
          example: 500
        collections_processing:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ResyncScopes'
          example:
            scope1:
              - collection_1
              - collection_2
    RotateAPIKeyRequest:
      type: object
      properties:
        secret:
          type: string
          description: |
            A secret associated with API key. One has to follow the secret key policy, such as allowed characters and a length of 64 characters. 
            If this field is left empty, a secret will be auto-generated.
          example: jawuXxSXYaWdr@uSSphmV1aJ4siKKcHHXnhhtbE8h8H!O2nbIQJ62M40stDATiBp
    RotateAPIKeyResponse:
      type: object
      required:
        - secretKey
        - token
      properties:
        secretKey:
          type: string
          example: <YOUR_SECRET_KEY_HERE>
          description: |
            The Secret key is a confidential piece of information that is paired with the Access key.
            The API key is made of an Access key and a Secret key.
        token:
          $ref: '#/components/schemas/Token'
    RotateAzureKey:
      type: object
      required:
        - config
      properties:
        config:
          $ref: '#/components/schemas/AzureConfig'
    RotateCMEKKey:
      type: object
      required:
        - config
      properties:
        config:
          oneOf:
            - $ref: '#/components/schemas/AWSConfig'
            - $ref: '#/components/schemas/GCPConfig'
            - $ref: '#/components/schemas/AzureConfig'
          example:
            arn: arn:aws:kms:us-west-2:123456789012:key/abcd1234-a123-456a-a12b-a123b4cd56ef
    ScheduleInfo:
      description: Represents the schedule information of the backup.
      type: object
      required:
        - backupType
        - backupTime
        - increment
        - retention
      properties:
        backupType:
          type: string
          description: Represents whether the backup is a Weekly or Daily backup.
          example: Weekly
        backupTime:
          type: string
          description: The timestamp indicating the backup created time.
          example: 2023-07-13 20:26:54.990864215 +0000 UTC
        increment:
          type: integer
          description: Represents interval in hours for incremental backup.
          example: 4
        retention:
          type: string
          description: Represents retention time in days.
          example: 90days
    Scope:
      type: object
      required:
        - collections
      properties:
        name:
          type: string
          description: Name of the scope.
          example: inventory
        collections:
          type: array
          items:
            $ref: '#/components/schemas/Collection'
    ScopeConfig:
      type: object
      description: The scope config, defining Access control and validation functions, and import filters for each collection. The key to the scope config object is the name of the scope. Only one scope is allowed per App Endpoint.
      required:
        - collections
      properties:
        collections:
          $ref: '#/components/schemas/CollectionsConfig'
    ScopesConfig:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/ScopeConfig'
      example:
        scope_1:
          collections:
            collection_1:
              accessControlFunction: function(doc){channel(doc.channels);}
              importFilter: function(doc) { if (doc.type != 'mobile') { return false; } return true; }
            collection_2:
              accessControlFunction: function(doc){channel(doc.channels);}
              importFilter: function(doc) { if (doc.type != 'mobile') { return false; } return true; }
      default:
        _default:
          collections:
            _default:
              accessControlFunction: function(doc){channel(doc.channels);}
              importFilter: ' function(doc) { if (doc.type != ''mobile'') { return false; } return true; }'
    Service:
      type: string
      enum:
        - data
        - query
        - index
        - search
        - analytics
        - eventing
      example: data
    ServiceGroup:
      type: object
      properties:
        node:
          $ref: '#/components/schemas/Node'
        numOfNodes:
          type: integer
          description: Number of nodes. The minimum number of nodes for the cluster can be 3 and maximum can be 27 nodes. - Additional service groups can have 2 nodes minimum and 24 nodes maximum. - SingleNode cluster can have only 1 node.
          example: 3
        services:
          type: array
          description: The couchbase service to run on the node. The allowed services for singleNode cluster are one or all of - data, index, query and search.
          minItems: 1
          uniqueItems: true
          items:
            $ref: '#/components/schemas/Service'
    Services:
      type: array
      items:
        type: string
        enum:
          - data
          - query
      example:
        - data
        - query
    Source:
      type: string
      description: |
        The way a backup job was initiated.
        1. Manual represents a manually triggered backup job or on-demand.
        2. Scheduled represents a backup job created from a schedule.
      enum:
        - manual
        - scheduled
      example: scheduled
    Stats:
      type: object
      required:
        - itemCount
        - opsPerSecond
        - diskUsedInMib
        - memoryUsedInMib
      properties:
        itemCount:
          type: integer
          description: Number of documents in the bucket.
          example: 10
        opsPerSecond:
          type: integer
          description: Number of operations per second.
          example: 0
        diskUsedInMib:
          type: integer
          description: The amount of disk used (in MiB).
          example: 17
        memoryUsedInMib:
          type: integer
          description: The amount of memory used (in MiB).
          example: 50
    Status:
      type: string
      description: The status of the backup.
      enum:
        - pending
        - ready
        - failed
      example: pending
    StorageBackend:
      type: string
      description: |
        The storage engine to be assigned to and used by the bucket.

        - Ephemeral buckets do not support StorageBackend, hence not applicable for Ephemeral buckets and throws an error if this field is added.

        - This field is only applicable for a Couchbase bucket. The default value before Couchbase Server 8.0 is `couchstore`. 
          The default value for Couchbase Server 8.0 and above is `magma` with 128 vbuckets.

        - This field cannot be changed later.

          To learn more, see [Storage Engines](https://docs.couchbase.com/cloud/clusters/data-service/storage-engines.html).
      enum:
        - couchstore
        - magma
      example: couchstore
    Support:
      type: object
      required:
        - plan
      properties:
        plan:
          $ref: '#/components/schemas/SupportPlan'
        timezone:
          $ref: '#/components/schemas/SupportTimezone'
    SupportPlan:
      type: string
      description: |
        Plan type, either 'Basic', 'Developer Pro', or 'Enterprise'. 
        Plan type allowed for singleNode cluster is either 'Basic', or 'Developer Pro'. 
        In case of 'Basic' plan timezone field value is ignored.
      enum:
        - basic
        - developer pro
        - enterprise
      example: basic
    SupportTimezone:
      type: string
      description: The standard timezone for the cluster. Should be the TZ identifier.
      example: ET
      enum:
        - ET
        - GMT
        - IST
        - PT
    Token:
      type: string
      example: QktxVUtFU1dKV1FlMmxwbzJBYXdnTVlRemFZdlRDZTg6eFh4dzU4JUYjekJVYWZPY3lqdUwwYkJoTjZSTmlzRWFIRHF0b1h4a08yazBpQjJ1bms1OW4yTUhAenRib3IhVQ==
      description: |
        The Token is a confidential piece of information that is used to authorize requests made to v4 endpoints.
    Type:
      type: string
      description: |
        Type of the bucket.

        - If selected Ephemeral, it is not eligible for imports or App Endpoints creation. This field cannot be changed later.

        - The options may also be referred to as Memory and Disk (Couchbase), Memory Only (Ephemeral) in the Couchbase documentation.

        To learn more, see [Create a Bucket](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket).
      enum:
        - couchbase
        - ephemeral
      default: couchbase
    UpdateAlertRequest:
      type: object
      required:
        - config
      properties:
        name:
          type: string
          description: Name of the alert integration (up to 1024 characters).
          example: test alert 1
          maxLength: 1024
        config:
          $ref: '#/components/schemas/RequestConfig'
    UpdateAppEndpointRequest:
      type: object
      required:
        - name
        - bucket
        - scopes
        - deltaSyncEnabled
        - userXattrKey
        - disablePublicAllDocs
        - oidc
        - cors
      properties:
        name:
          type: string
          description: App Endpoint name. Cannot be changed.
          example: appEndpoint1
        bucket:
          type: string
          example: store_locations
          description: The Capella Cluster backing bucket for the App Endpoint. Cannot be changed.
        scopes:
          $ref: '#/components/schemas/ScopesConfig'
        deltaSyncEnabled:
          type: boolean
          description: Enable or disable delta sync
        userXattrKey:
          type: string
          example: syncFnXattr
          description: Key of user xattr that will be accessible from the Access control and validation function. If empty, the feature will be disabled.
        disablePublicAllDocs:
          type: boolean
          default: false
          description: Disable the `_all_docs` endpoint for this App Endpoint on the App Services Public API.
        oidc:
          description: OpenID Connect provider configuration.
          type: array
          items:
            $ref: '#/components/schemas/OIDCProvider'
        cors:
          description: Cross-Origin Resource Sharing (CORS) configuration, used to enable granular access control to trusted domains for Origin and Login purposes in browser-based and hybrid applications.
          $ref: '#/components/schemas/CORSConfig'
    UpdateAppServiceAdminUserAllEndpointsRequest:
      type: object
      required:
        - accessAllEndpoints
      properties:
        accessAllEndpoints:
          type: boolean
          description: Give user access to all App Endpoints.
          example: false
    UpdateAppServiceAdminUserEndpointList:
      type: object
      required:
        - endpoints
      properties:
        endpoints:
          type: array
          description: The list of App Endpoints that the user has access to.
          example:
            - appEndpoint1
            - appEndpoint2
          items:
            type: string
    UpdateAppServiceRequest:
      type: object
      required:
        - nodes
        - compute
      properties:
        nodes:
          type: integer
          description: Number of nodes configured for the App Service. The number of nodes can range from 2 to 12.
          example: 2
        compute:
          $ref: '#/components/schemas/AppServiceCompute'
    UpdateAwsPrivateEndpointServiceRequest:
      type: object
      required:
        - routes
      properties:
        routes:
          allOf:
            - $ref: '#/components/schemas/PrivateEndpointRoutes'
    UpdateBedrockConfigurationRequest:
      type: object
      properties:
        accessKeyId:
          type: string
          description: The access key ID to access AWS Bedrock.
        secretAccessKey:
          type: string
          description: The secret access key to access AWS Bedrock.
    UpdateBucketRequest:
      type: object
      required:
        - memoryAllocationInMb
        - durabilityLevel
        - replicas
        - timeToLiveInSeconds
      properties:
        memoryAllocationInMb:
          type: integer
          description: |
            The new amount of memory to allocate for the bucket memory in MiB.
            The maximum limit is dependent on the allocation of the KV service; for example, 80% of the allocation.

            - For Couchbase buckets, the default and minimum memory allocation changes according to the Storage Backend type, as follows:

              1. For Couchstore, the default and minimum memory allocation is 100 MiB.

              2. For Magma, the default and minimum memory allocation is 1024 MiB.

            - For Ephemeral buckets, the default and minimum memory allocation is 100 MiB.
          example: 100
        durabilityLevel:
          type: string
          description: |
            This is the minimum level at which all writes to the bucket must occur.

            The options for Durability level are as follows, according to the bucket type.

            - For a Couchbase bucket:

              1. None

              2. Replicate to Majority

              3. Majority and Persist to Active

              4. Persist to Majority

            - For an Ephemeral bucket:

              1. None

              2. Replicate to Majority

              A Durability other than None cannot be set on a bucket that is linked with an App Endpoint.

              To learn more, see [Create a Bucket](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket).
          enum:
            - none
            - majority
            - majorityAndPersistActive
            - persistToMajority
        replicas:
          type: integer
          description: |-
            The number of replicas for the bucket.
            To learn more, see [Create a Bucket](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket).
          enum:
            - 1
            - 2
            - 3
        flush:
          type: boolean
          description: |
            Replaced by flushEnabled. This property is deprecated and will be removed in a future release.

            The new value of flush property. This determines whether bucket flush is enabled. Enable Flush to be able to delete all items in this bucket at the earliest opportunity using /flush endpoint. Disable Flush to avoid inadvertent data loss by calling the /flush endpoint
          default: false
          deprecated: true
        flushEnabled:
          type: boolean
          description: This determines whether bucket flush is enabled. Enable flushEnabled to delete all items in this bucket at the earliest opportunity by calling the /flush endpoint. Disable flushEnabled to avoid inadvertent data loss by calling the /flush endpoint.
          default: false
        timeToLiveInSeconds:
          type: integer
          description: |
            Specify the new time to live (TTL) value in seconds. This is the maximum time to live for items in the bucket.

            If specified as 0, TTL is disabled. This is a non-negative value.

            A bucket that is linked with an App Endpoint cannot have a TTL configured.
          example: 100
        enableCrossClusterVersioning:
          $ref: '#/components/schemas/EnableCrossClusterVersioning'
        priority:
          $ref: '#/components/schemas/BucketPriority'
    UpdateBucketStorageBackendRequest:
      type: object
      required:
        - buckets
      properties:
        buckets:
          type: array
          description: Names of the buckets which need to be migrated from Couchstore to Magma.
          items:
            type: string
          example:
            - sample-bucket
            - my-bucket
          maxItems: 30
    UpdateClusterRequest:
      type: object
      required:
        - name
        - description
        - serviceGroups
        - support
      properties:
        name:
          type: string
          maxLength: 256
          description: The new name of the cluster (up to 256 characters).
          example: My-New-Cluster
        description:
          type: string
          maxLength: 1024
          description: The new cluster description (up to 1024 characters).
          example: The extended description of my new cluster.
        support:
          $ref: '#/components/schemas/Support'
        serviceGroups:
          type: array
          items:
            $ref: '#/components/schemas/ServiceGroup'
    UpdateClusterResponse:
      type: object
      required:
        - id
        - name
        - description
        - cloudProvider
        - couchbaseServer
        - serviceGroups
        - availability
        - support
        - currentState
        - audit
      properties:
        id:
          type: string
          format: uuid
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: The ID of the cluster created.
        name:
          type: string
          description: The new name of the cluster.
          example: My-New-Cluster
          maxLength: 256
        description:
          type: string
          description: The new cluster description (up to 1024 characters).
          example: The extended description of my new cluster.
          maxLength: 1024
        cloudProvider:
          $ref: '#/components/schemas/CloudProvider'
        couchbaseServer:
          $ref: '#/components/schemas/CouchbaseServer'
        serviceGroups:
          type: array
          items:
            $ref: '#/components/schemas/ServiceGroup'
        availability:
          $ref: '#/components/schemas/Availability'
        support:
          $ref: '#/components/schemas/Support'
        currentState:
          $ref: '#/components/schemas/CurrentState'
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    UpdateCollectionRequest:
      type: object
      required:
        - maxTTL
      properties:
        maxTTL:
          type: integer
          description: |
            Specify the new time to live (TTL) value in seconds.
             -  This value should be >= -1. Set to -1 to disable expiry for that collection.
             -  Set to 0 to use the bucket's maxTTL value.
             -  The maximum value that can be set for maxTTL is 2147483647.

            A collection that is linked with an App Endpoint cannot have a TTL configured.
          example: 100
    UpdateColumnarAnalyticsClusterRequest:
      description: Update an analytics cluster
      required:
        - name
        - description
        - nodes
        - support
      type: object
      properties:
        name:
          type: string
          description: Name of the analytics cluster.
          example: My first analytics cluster
          maxLength: 256
        description:
          type: string
          maxLength: 1024
          description: The new cluster description (up to 1024 characters).
          example: The extended description of my new cluster.
        nodes:
          type: integer
          example: 2
          description: The number of nodes you want for the cluster
          minimum: 1
          maximum: 32
        support:
          $ref: '#/components/schemas/ColumnarSupport'
    UpdateDatabaseCredentialRequest:
      type: object
      properties:
        access:
          type: array
          description: Describes the access information of the database credential.
          items:
            $ref: '#/components/schemas/Access'
        password:
          type: string
          example: Pa$$w0rd
          description: The updated password of the database credential.
    UpdateFreeTierAppServiceRequest:
      type: object
      properties:
        name:
          type: string
          description: Name of the App Service (up to 256 characters).
          example: MyAppSyncService
          maxLength: 256
        description:
          type: string
          description: A short description of the App Service.
          example: My app sync service.
    UpdateFreeTierBucketRequest:
      type: object
      required:
        - memoryAllocationInMb
      properties:
        memoryAllocationInMb:
          type: integer
          description: |
            The new amount of memory to allocate for the bucket memory in MiB.
        enableCrossClusterVersioning:
          $ref: '#/components/schemas/EnableCrossClusterVersioning'
    UpdateFreeTierClusterRequest:
      type: object
      required:
        - name
        - description
      properties:
        name:
          type: string
          maxLength: 256
          description: The new name of the cluster (up to 256 characters).
          example: My-New-Cluster
        description:
          type: string
          maxLength: 1024
          description: The new cluster description (up to 1024 characters).
          example: The extended description of my new cluster.
    UpdateModelRequest:
      type: object
      description: Request body for creating a language model
      properties:
        name:
          type: string
          description: Name of the model.
          example: my-new-model
        caching:
          $ref: '#/components/schemas/Caching'
        enableBatching:
          type: boolean
          description: Option to enable batching.
          example: true
        keywordFiltering:
          type: array
          description: Keywords in a comma-separated string to filter the input.
          items:
            type: string
          example:
            - harassment
            - murder
        guardrails:
          type: array
          description: List of guardrail categories as plain text strings. These will be formatted into a template and base64-encoded internally.
          items:
            type: string
          example:
            - sexual crime
            - hate speech
        jailbreak:
          type: object
          description: Jailbreak model information.
          properties:
            scoreThreshold:
              type: number
              format: double
              description: The score threshold for the jailbreak model. Ranges between 0-1; 0<score<1.
              example: 0.9
    UpdateOpenAIConfigurationRequest:
      type: object
      properties:
        apiKey:
          type: string
          description: The API key to access the OpenAI API.
          example: sk-1234567890
    UpdateOrganizationConfigurationRequest:
      type: object
      required:
        - subdomain
      properties:
        subdomain:
          type: string
          description: The new name of the subdomain for the organization.
          example: abc
          maxLength: 30
    UpdateProjectRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: The new project name (up to 128 characters).
          maxLength: 128
          example: My-New-Project
        description:
          type: string
          description: The new project description (up to 256 characters).
          maxLength: 256
          example: The extended description of my awesome project.
    UpdateProjectResponse:
      type: object
      required:
        - id
        - description
        - name
        - audit
      properties:
        id:
          type: string
          example: ffffffff-aaaa-1414-eeee-000000000000
          description: A GUID4 identifier of the project.
          format: uuid
        description:
          type: string
          example: The extended description of my awesome project.
          description: The description of the updated project.
        name:
          type: string
          example: My-New-Project
          description: The name of the updated project.
        audit:
          $ref: '#/components/schemas/CouchbaseAuditData'
    UpdateProviderRequest:
      type: object
      required:
        - configuration
      properties:
        configuration:
          type: object
          description: The configuration for the provider to update.
          oneOf:
            - $ref: '#/components/schemas/UpdateS3ConfigurationRequest'
            - $ref: '#/components/schemas/UpdateOpenAIConfigurationRequest'
            - $ref: '#/components/schemas/UpdateBedrockConfigurationRequest'
    UpdateReplicationRequest:
      type: object
      properties:
        priority:
          type: string
          description: |
            Priority represents the resource allocation to the replication.

            - low: Resource constraints are applied when competing with high priority replications
            - medium: Resource constraints are applied during initial processing when competing with high priority replications, then operates as high priority
            - high: No resource constraints are applied (default priority)
          enum:
            - low
            - medium
            - high
          default: high
          example: high
        networkUsageLimit:
          type: integer
          description: Network usage limit in MiB per second. Default is 0 meaning it is unlimited.
          example: 100
          default: 0
        filter:
          $ref: '#/components/schemas/filter'
        allScopes:
          type: boolean
          description: |
            If true, all scopes will be replicated.
            If false, the scopes specified in the mappings field will be replicated.
          default: false
        mappings:
          $ref: '#/components/schemas/mappings'
    UpdateS3ConfigurationRequest:
      type: object
      properties:
        accessKeyId:
          type: string
          description: The access key ID to access the S3 bucket.
        secretAccessKey:
          type: string
          description: The secret access key to access the S3 bucket.
        sessionToken:
          type: string
          description: The session token to access the S3 bucket in case of temporary credentials.
        awsRegion:
          type: string
          description: The AWS region the S3 bucket is located in.
        bucket:
          type: string
          description: The name of the S3 bucket.
        folderPath:
          type: string
          description: The path to the folder in the S3 bucket where the files are stored. Leave empty for root folder.
          default: ''
    UpsertCloudSnapshotBackupScheduleRequest:
      type: object
      properties:
        interval:
          type: integer
          description: Represents the time interval.
          example: 1
        retention:
          type: integer
          description: Represents interval in hours to retain the backup.
          example: 24
        startTime:
          type: string
          format: date-time
          description: Represents the start time in ISO 8601 format.
          example: '2024-01-05T16:00:00+00:00'
        copyToRegions:
          type: array
          items:
            type: string
          description: Represents the list of geographical regions where snapshot copies to be stored in addition to the primary region. Currently, this feature is supported for AWS and Azure clusters.
          example:
            - us-east-1
            - ap-southeast-4
    UpsertColumnarAnalyticsBackupScheduleRequest:
      type: object
      properties:
        interval:
          type: integer
          description: Represents the time interval in hours.
          example: 4
        retention:
          type: integer
          description: Represents the retention time of the backup in hours.
          example: 24
        startTime:
          type: string
          format: date-time
          description: Represents the start time in ISO 8601 format.
          example: '2024-07-08T17:00:00+00:00'
      required:
        - interval
        - retention
        - startTime
    UsageMetrics:
      type: object
      description: Token and request information.
      properties:
        tokens:
          type: object
          description: Details about the tokens consumed by the model.
          properties:
            value:
              type: integer
              description: The number of tokens consumed by the model.
              example: 345
            trend:
              type: string
              description: The trend of token consumption.
              enum:
                - increasing
                - decreasing
              example: increasing
        requests:
          type: object
          description: The requests consumed by the model.
          properties:
            value:
              type: integer
              description: The number of requests consumed by the model.
              example: 4094
            trend:
              type: string
              description: The trend of request consumption.
              enum:
                - increasing
                - decreasing
              example: increasing
    VectorizationConfig:
      type: object
      required:
        - embeddingFieldMappings
        - embeddingModel
      description: Configuration for vectorization in a workflow.
      properties:
        createIndexes:
          type: boolean
          description: |
            When set to true, the workflow will create an index for every vector embedding field. When set to false, the workflow will not create an index for any vector embedding fields. Note that only the vector embedding fields specified in the `embeddingFieldMappings` object will be used for creating the indexes. Pre-existing embedding fields will not be used for creating the indexes. Every index created by the workflow will follow the convention of `Vector_<embedding-field-name>`.
          default: false
          example: true
        embeddingFieldMappings:
          type: object
          description: |
            A mapping of vector embedding field names to the object with their corresponding source field names. It supports a minimum of 1 and maximum of 5 vector embedding field names.
          minProperties: 1
          maxProperties: 5
          additionalProperties:
            type: object
            description: |
              Object containing the vector embedding field's corresponding source fields.
            properties:
              sourceFields:
                type: array
                description: |
                  A list of source fields for the corresponding vector embedding field.
                items:
                  type: string
                  description: |
                    Name of a source field.
                  example: field1
        embeddingModel:
          oneOf:
            - $ref: '#/components/schemas/ExternalModel'
            - $ref: '#/components/schemas/CapellaHostedModel'
    VectorizationConfigCreation:
      type: object
      required:
        - embeddingModel
      description: Configuration for vectorization in a workflow.
      properties:
        createIndexes:
          type: boolean
          description: |
            When set to true, the workflow will create an index for every vector embedding field. When set to false, the workflow will not create an index for any vector embedding fields. Only the vector embedding fields specified in the `embeddingFieldMappings` object will be used for creating the indexes. Pre-existing embedding fields will not be used for creating the indexes. Every index created by the workflow will follow the convention of `Vector_<embedding-field-name>`.
          default: false
          example: true
        embeddingFieldMappings:
          type: object
          description: |
            A mapping of vector embedding field names to the object with their corresponding source field names. It supports a minimum of 1 and maximum of 5 vector embedding field names.
          minProperties: 1
          maxProperties: 5
          additionalProperties:
            type: object
            description: |
              Object containing the vector embedding field's corresponding source fields.
            properties:
              sourceFields:
                type: array
                description: |
                  A list of source fields for the corresponding vector embedding field.
                items:
                  type: string
                  description: |
                    Name of a source field.
                  example: field1
        embeddingModel:
          oneOf:
            - type: object
              required:
                - external
              properties:
                external:
                  type: object
                  required:
                    - openAiIntegration
                    - modelName
                  properties:
                    openAiIntegration:
                      type: object
                      required:
                        - providerId
                      properties:
                        providerId:
                          type: string
                          description: |
                            The unique identifier of the OpenAI integration provider. This is used to identify the integration in the Capella platform.
                          example: provider1-ffffffff-aaaa-1414-eeee-000000000000
                    modelName:
                      type: string
                      description: The name of the external embedding model.
                      example: text-embedding-3-small
            - type: object
              required:
                - capellaHostedModel
              properties:
                capellaHostedModel:
                  type: object
                  required:
                    - id
                    - modelName
                    - apiKeyId
                    - apiKeyToken
                    - privateEndpointEnabled
                  properties:
                    id:
                      type: string
                      description: The ID of the model hosted with Capella.
                      example: 550e8400-e29b-41d4-a716-446655440000
                    modelName:
                      type: string
                      description: The name of the model hosted with Capella.
                      example: text-embedding-3-small
                    apiKeyId:
                      type: string
                      description: |
                        Specifies the id of the api key.
                      example: 550e8400-e29b-41d4-a716-446655440000
                    apiKeyToken:
                      type: string
                      description: |
                        Specifies the token of the api key.
                      example: sk-1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
                    privateEndpointEnabled:
                      type: boolean
                      description: |
                        Specifies whether the private endpoint is enabled for the capella hosted model.
                      example: true
    WeeklySchedule:
      type: object
      description: Schedule a full backup once a week with regular incrementals.
      required:
        - dayOfWeek
        - startAt
        - incrementalEvery
        - retentionTime
        - costOptimizedRetention
      properties:
        dayOfWeek:
          type: string
          description: Day of the week for the backup.
          example: sunday
        startAt:
          type: integer
          description: Start at hour (in 24-Hour format).
          example: 10
        incrementalEvery:
          type: integer
          description: Interval in hours for incremental backup.
          example: 4
        retentionTime:
          type: string
          description: Retention time in days.
          example: 90days
        costOptimizedRetention:
          type: boolean
          description: Optimize backup retention to reduce total cost of ownership (TCO). This gives the option to keep all but the last backup cycle of the month for thirty days; the last cycle will be kept for the defined retention period. To learn more, see [Cost Optimized Retention Policy](https://docs.couchbase.com/cloud/clusters/backup-restore.html#cost-optimized-retention-policy).
          example: false
    collections:
      type: array
      description: Optional list of collections under the scope.
      items:
        type: string
        example: collection-1
    datadog:
      type: object
      required:
        - apiKey
        - url
      properties:
        apiKey:
          type: string
          description: The API key for authentication
        url:
          type: string
          description: The DataDog log ingestion URL
      example:
        apiKey: apiKey
        url: https://http-intake.logs.datadoghq.eu
    dynatrace:
      type: object
      required:
        - apiToken
        - url
      properties:
        apiToken:
          type: string
          description: The token for the Dynatrace log collector
        url:
          type: string
          description: The URL for the Dynatrace log collector
      example:
        apiToken: APIToken
        url: https://instance.live.dynatrace.com/api/v2/logs/ingest
    elastic:
      type: object
      required:
        - user
        - password
        - url
      properties:
        user:
          type: string
          description: The username for the Elasticsearch log collector
        password:
          type: string
          description: The password for the Elasticsearch log collector
        url:
          type: string
          description: The URL for the Elasticsearch log collector
      example:
        user: elasticUser
        password: password
        url: https://elasticsearch:9200/_bulk
    exclude:
      type: object
      properties:
        clusters:
          type: array
          items:
            type: string
          format: uuid
          example:
            - ffffffff-aaaa-1414-eeee-000000000000
            - ...
          description: The list of cluster IDs of the clusters to be excluded from the alert integration.
        appServices:
          type: array
          items:
            type: string
          format: uuid
          example:
            - ffffffff-aaaa-1414-eeee-000000000000
            - ...
          description: The list of app service IDs of the app services to be excluded from the alert integration.
    filter:
      type: object
      description: Filter contains the replication settings which are passed to the Couchbase server API while creating a replication.
      properties:
        documentExcludeOptions:
          type: object
          properties:
            deletion:
              type: boolean
              default: false
              description: When true, deletions are filtered out.
            expiration:
              type: boolean
              default: false
              description: When true, expirations are filtered out.
            ttl:
              type: boolean
              default: false
              description: When true, TTL value is removed from the replicated documents.
            binary:
              type: boolean
              default: false
              description: When true, binary documents are filtered.
        expressions:
          type: object
          properties:
            regEx:
              type: string
              description: Filter expression to match documents.
              example: REGEXP_CONTAINS(country, "France")
            skipRestream:
              type: boolean
              default: false
              description: |
                If true, updated filter applies only to new mutations.
                If false, replication restarts with updated filter.
    generic_http:
      type: object
      required:
        - url
      properties:
        user:
          type: string
          description: The username for HTTP authentication, if required
        password:
          type: string
          description: The password for HTTP authentication, if required
        url:
          type: string
          description: The URL for a generic HTTP log collector
      example:
        user: httpUser
        password: password
        url: https://host:8080/endpoint
    getFilter:
      type: object
      description: Filter contains the replication settings which are passed to the Couchbase server API while creating a replication.
      properties:
        documentExcludeOptions:
          type: object
          properties:
            deletion:
              type: boolean
              default: false
              description: When true, deletions are filtered out.
            expiration:
              type: boolean
              default: false
              description: When true, expirations are filtered out.
            ttl:
              type: boolean
              default: false
              description: When true, TTL value is removed from the replicated documents.
            binary:
              type: boolean
              default: false
              description: When true, binary documents are filtered.
        expressions:
          type: object
          properties:
            regEx:
              type: string
              description: Filter expression to match documents.
              example: REGEXP_CONTAINS(country, "France")
    loki:
      type: object
      required:
        - user
        - password
        - url
      properties:
        user:
          type: string
          description: The username for the Grafana Loki log collector
        password:
          type: string
          description: The password for the Grafana Loki log collector
        url:
          type: string
          description: The URL for the Grafana Loki log collector
      example:
        user: lokiUser
        password: password
        url: https://loki:3100/loki/api/v1/push
    mappings:
      type: array
      description: |
        Defines mappings from source to target scopes and collections.
        This field is only required if you are replicating specific scopes and collections.

        Note: If the collections array is empty or omitted, it implies all collections under that scope would be replicated.
      items:
        type: object
        required:
          - sourceScope
          - targetScope
        properties:
          sourceScope:
            type: string
            example: source-scope-1
          targetScope:
            type: string
            example: target-scope-1
          collections:
            type: array
            items:
              type: object
              required:
                - sourceCollection
                - targetCollection
              properties:
                sourceCollection:
                  type: string
                  example: source-collection-1
                targetCollection:
                  type: string
                  example: target-collection-1
    onOffTimezone:
      type: string
      description: Timezone for the schedule
      enum:
        - Pacific/Midway
        - US/Hawaii
        - US/Alaska
        - US/Pacific
        - US/Mountain
        - US/Central
        - US/Eastern
        - America/Puerto_Rico
        - Canada/Newfoundland
        - America/Argentina/Buenos_Aires
        - Atlantic/Cape_Verde
        - Europe/London
        - Europe/Amsterdam
        - Europe/Athens
        - Africa/Nairobi
        - Asia/Tehran
        - Indian/Mauritius
        - Asia/Karachi
        - Asia/Calcutta
        - Asia/Dhaka
        - Asia/Bangkok
        - Asia/Hong_Kong
        - Asia/Tokyo
        - Australia/North
        - Australia/Sydney
        - Pacific/Ponape
        - Antarctica/South_Pole
      example: US/Pacific
    replicationSource:
      type: object
      description: Source contains all the metadata about a replication source.
      required:
        - project
        - cluster
        - bucket
      properties:
        project:
          type: object
          description: Project contains the metadata for the source from which the replication is established.
          required:
            - id
            - name
          properties:
            id:
              type: string
              example: 44508406-5ef0-4b0b-be9f-f31dcc422ea0
            name:
              type: string
              example: SourceProject
        cluster:
          type: object
          description: Cluster contains the metadata for the source from which the replication is established.
          required:
            - id
            - name
          properties:
            id:
              type: string
              example: a86f56c2-c4b4-425c-8df6-fddd6e2c7ddb
            name:
              type: string
              example: SourceCluster
        bucket:
          type: object
          description: Bucket contains the metadata for the source from which the replication is established.
          required:
            - id
            - name
            - conflictResolutionType
          properties:
            id:
              type: string
              example: dGVzdA
            name:
              type: string
              example: SourceBucket
            conflictResolutionType:
              type: string
              example: seqno
        scopes:
          $ref: '#/components/schemas/scopes'
        type:
          type: string
          description: Type tells us if the source cluster is capella or external.
          enum:
            - capella
            - external
          default: capella
    replicationSummary:
      type: object
      required:
        - id
        - sourceCluster
        - targetCluster
        - status
        - audit
      properties:
        id:
          type: string
          description: The ID of the specified replication.
          example: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI=
        sourceCluster:
          type: string
          description: The name of the source cluster.
          example: SourceCluster
        targetCluster:
          type: string
          description: The name of the target cluster.
          example: TargetCluster
        status:
          type: string
          description: The status of the replication.
          enum:
            - pending
            - pausing
            - failed
            - paused
            - running
          example: running
        direction:
          type: string
          description: Direction specifies the replication flow — whether it's oneWay (source to target only) or twoWay (also from target back to source).
          enum:
            - oneWay
            - twoWay
          default: oneWay
        audit:
          $ref: '#/components/schemas/ReplicationAuditData'
    replicationTarget:
      type: object
      description: Target contains all the metadata about a replication target.
      required:
        - cluster
        - bucket
        - type
      properties:
        project:
          type: object
          description: Project contains the metadata for the destination to which the replication is established.
          properties:
            id:
              type: string
              example: 55619517-6fg1-5c1c-cf0g-g42edd533fb1
            name:
              type: string
              example: TargetProject
        cluster:
          type: object
          description: Cluster contains the metadata for the destination to which the replication is established.
          required:
            - id
            - name
          properties:
            id:
              type: string
              example: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
            name:
              type: string
              example: TargetCluster
        bucket:
          type: object
          description: Bucket contains the metadata for the destination to which the replication is established.
          required:
            - id
            - name
          properties:
            id:
              type: string
              example: dPVzdB
            name:
              type: string
              example: TargetBucket
            conflictResolutionType:
              type: string
              example: seqno
        scopes:
          $ref: '#/components/schemas/scopes'
        type:
          type: string
          description: Type tells us if the target cluster is capella or external.
          enum:
            - capella
            - external
          default: capella
    scopes:
      type: array
      description: Scopes and collections details for the cluster. Empty for full bucket replication.
      items:
        type: object
        properties:
          name:
            type: string
            example: scope-1
          collections:
            $ref: '#/components/schemas/collections'
    splunk:
      type: object
      required:
        - splunkToken
        - url
      properties:
        splunkToken:
          type: string
          description: The token for the Splunk log collector
        url:
          type: string
          description: The URL for the Splunk log collector
      example:
        splunkToken: SplunkToken
        url: https://splunk:8088
    sumologic:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          description: The SumoLogic signed URL for the log ingestion
      example:
        url: https://endpoint1.collection.us2.sumologic.com/receiver/v1/http/AaBbCc12345678
  responses:
    AccessForbidden:
      description: The client does not have the necessary permissions to access this resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            AccessForbidden:
              value:
                httpStatusCode: 403
                code: 1002
                message: Access Denied.
                hint: Your access to the requested resource is denied. Please make sure you have the necessary permissions to access the resource.
    AppEndpointAccessForbidden:
      description: |
        The client does not have the necessary permissions to access this resource. This response can also indicate that
        the requested App Endpoint or bucket does not exist or the user does not have access to it.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            AccessForbidden:
              $ref: '#/components/responses/AccessForbidden/content/application~1json/examples/AccessForbidden'
    BadRequest:
      description: Returned when we are unable to decode the recevied payload.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            BadRequest:
              value:
                httpStatusCode: 400
                code: 1000
                message: The request was malformed or invalid.
                hint: The request was malformed or invalid.
    Conflict:
      description: Returned when there is a conflict with the current state of a resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Conflict:
              value:
                httpStatusCode: 409
                code: 1010
                message: There is a conflict with the current state of a resource.
                hint: Returned when trying to create or update a resource that already exists or has conflicting information.
    GatewayTimeout:
      description: The server did not get a response in time from the upstream server in order to complete the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            GatewayTimeout:
              value:
                httpStatusCode: 504
                code: 1002
                message: The request timed out while waiting for a response from the upstream server.
                hint: The server exceeded the deadline for a response. Please try again.
    IndexNotFound:
      description: Index with specified name was not found in case of DELETE, ALTER or BUILD.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            ResourceNotFound:
              value:
                httpStatusCode: 404
                code: 404
                message: The index was not found.
                hint: Check if the index exists in the collection.
    InternalServerError:
      description: An unexpected error occurred in the server while processing this request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            InternalServerError:
              value:
                httpStatusCode: 500
                code: 10000
                message: An internal server error occurred.
                hint: Something went wrong on our end. We are actively investigating the issue.
    NotImplemented:
      description: The server does not support the functionality required to fulfill the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            NotImplemented:
              value:
                httpStatusCode: 501
                code: 1011
                message: The requested functionality is not implemented.
                hint: Returns when the server does not support the functionality required to fulfill the request.
    PreconditionFailed:
      description: Returned when there is a mismatch with the Etag version.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            PreconditionFailed:
              value:
                httpStatusCode: 412
                code: 1012
                message: The request precondition failed. The resource state does not meet the conditions specified in the request headers.
                hint: Please Verify the precondition headers (e.g., If-Match, If-Unmodified-Since) and ensure they align with the current state of the resource.
    RateLimitExceeded:
      description: Returned when the client exceeds the rate limit for the given APIKey.
      headers:
        Retry-After:
          schema:
            type: string
            description: The amount of time, in seconds, that the client should wait before sending subsequent requests.
            example: 'Retry-After: 60'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            RateLimitExceeded:
              value:
                httpStatusCode: 429
                code: 1004
                message: Oops! You've made too many requests. Please wait for time specified in the retryAfter header before trying again.
                hint: The number of requests allowed per API key has exceeded. Please retry after time specified in the retryAfter header has passed.
    ResourceNotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            ResourceNotFound:
              value:
                httpStatusCode: 404
                code: 3000
                message: The server cannot find the resource.
                hint: The server cannot find the resource.
    ServiceUnavailable:
      description: The server is currently unable to handle the request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            InternalServerError:
              value:
                httpStatusCode: 503
                code: 1007
                message: The server is currently unable to handle the request.
                hint: Please ensure the resource is in the correct state to handle requests.
    Unauthorized:
      description: The client does not have the valid credentials to access this resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            Unauthorized:
              value:
                httpStatusCode: 401
                code: 1001
                message: The request is unauthorized. Please ensure you have proper authentication credentials and try again.
                hint: The request is unauthorized. Please ensure you have proper authentication credentials and try again.
    UnprocessableContent:
      description: Request validation error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            UnprocessableContent:
              value:
                httpStatusCode: 422
                code: 1005
                message: The server can't process the content.
                hint: The server can't process the content.
  headers:
    ETag:
      description: Entity tag for the resource, used for caching and conditional requests.
      schema:
        type: string
        example: 'Version: 1'
        description: |
          An ETag is a unique identifier assigned to a specific version of a resource on a web server.
          It allows the server to identify whether the version of the resource on the client side matches the version on the server side.
          This field represents the ETag value returned by the server for a particular resource.
  securitySchemes:
    token:
      type: http
      scheme: bearer
