openapi: 3.0.2
info:
  title: Couchbase Capella Management API
  version: v4.0
  description: |
    The Couchbase Capella Management API provides a set of REST APIs for creating and managing Capella instances.
    It enables users to perform operations such as creating new Capella instances, managing their configurations, and interacting with the Capella services.
    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 itself to create further API keys.
    To learn more, see [Get Started with the Management API v4.0](https://docs.couchbase.com/cloud/management-api-guide/management-api-start.html).

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

    **API Base URL:**

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

    [Back to Management API v4.0 Documentation](https://docs.couchbase.com/cloud/management-api-guide/management-api-intro.html)
servers:
  - url: https://cloudapi.cloud.couchbase.com
security:
  - token: []
tags:
  - name: AI Services Providers
    description: Providers represents the integrations with external services that are required by AI Services. These endpoints facilitate interactions with external services providers required by AI Services.
  - name: AI Workflows
    description: |
      Workflows can vectorize data stored either in Capella operational clusters or in external files. These workflows generate embeddings on the data using a specified AI model.

      **Workflow types:**
      - `structuredDataProcessing`: For importing and vectorizing structured data in JSON format.
      - `unstructuredDataProcessing`: For processing and vectorizing unstructured data in formats such as PDF, JPG, PNG, DOC, and DOCX.
      - `vectorization`: For vectorizing JSON data stored in Capella operational clusters.
  - name: Alert Integration
    description: |
      Couchbase Capella supports sending Capella alert notifications to the most common service like ServiceNow.
  - name: Allowed CIDRs (App Services)
    description: |
      App Services only allow trusted IP addresses to connect and use its REST APIs.
      Each App Service 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: Allowed CIDRs (Cluster)
    description: |
      Couchbase Capella only allows trusted IP addresses to connect to databases.
      Each database 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: App Endpoints
    description: |
      App Endpoints represent instances of mobile applications on App Services. Each App Endpoint is linked to one bucket and synchronizes data to a set of
      linked collections. Users can configure App Endpoints, including setting the Access Control function, Import Filter and OpenID Connect (OIDC) authentication configuration.
  - name: App Services
    description: |
      App Services is a fully managed application backend designed to provide data synchronization between mobile or IoT applications running Couchbase Lite and your Couchbase Capella database.
  - name: App Services Audit Logging
    description: Users can configure audit log support on Capella App Services and can export audit logs from cloud blob storage to an AWS S3 bucket. Users can retrieve audit logs from a pre-signed download URL. Logs are retained for 30 days.
  - name: App Services Log Streaming
    description: |
      Log Streaming provides a mechanism for real-time streaming of App Services operational logs to third-party observability platforms or self-hosted HTTP logs collectors. This is a crucial tool to gain instant insights into application behavior, enabling rapid issue detection and resolution to enhance application reliability, performance, and security.
  - name: App Services Private Endpoints
    description: |
      App Services Private Endpoints enables you to configure a secure private network connection between the Virtual Private Cloud (VPC) hosting your applications and the VPC of your Couchbase Capella App Services. Note: This is currently only available for AWS.
  - name: Audit Logs
    description: |
      Users can configure audit log support on Capella database and can export audit logs from cloud blob storage to an AWS S3 bucket. Users can retrieve audit logs from a pre-signed download URL. Logs are retained for 30 days.
  - name: Backup Schedule (Bucket)
    description: |
      Couchbase supports a robust scheduled backup and retention time policy as part of an overall disaster recovery plan for production data.
      Couchbase Capella supports scheduled and on-demand backups of bucket data.
      A backup can be restored to the same database where it was created or another database in the same organization.
      On setting up a backup schedule, the bucket automatically backs up the bucket based on the chosen schedule.
  - name: Backups & Restore (Bucket)
    description: |
      Couchbase supports a robust scheduled backup and retention time policy as part of an overall disaster recovery plan for production data.
      Couchbase Capella supports scheduled and on-demand backups of bucket data.
      A backup can be restored to the same database where it was created or another database in the same organization.
      An on-demand backup of a bucket is always a Full backup.
      Capella schedules on-demand backup to start immediately.
  - name: Buckets, Scopes, & Collections
    description: |
      A bucket is the fundamental space for storing data in Couchbase Capella.
      Scopes and Collections are logical containers within a bucket and a way for organizing data within buckets.
      A scope is a mechanism for the grouping of multiple collections. A collection is a data container for related documents.
  - name: CMEK
    description: |
      The CMEK (Customer Managed Encryption Keys) endpoints facilitate the management of encryption keys used by clusters for data encryption.
      They allow organizations to register, list, retrieve, rotate, and delete the metadata associated with their own encryption keys within Capella.
      This suite of endpoints ensures that organizations have full control over the lifecycle of their keys, enhancing security and compliance by allowing encryption keys that are managed in external key management services like AWS KMS or GCP KMS to be used within the organization's clusters.
  - name: Certificates
    description: |
      Couchbase Capella supports the use of x.509 certificates, for clients and servers.
      This ensures that only approved users, applications, machines, and endpoints have access to system resources.
      Consequently, the mechanism can be used by Couchbase SDK clients to access Couchbase Services, and by source clusters that use XDCR to replicate data to target clusters.
      Clients can verify the identity of Couchbase Capella, thereby ensuring that they are not exchanging data with a rogue entity.
  - name: Cloud Snapshot Backups & Restore
    description: |
      Couchbase supports a robust scheduled backup and retention time policy as part of an overall disaster recovery plan for production data.
      Couchbase Capella supports scheduled and on-demand backups of cloud snapshot data.
      A backup can be restored to the same database where it was created or another database in the same organization.
      A backup can also be cloned to create a new database with the same specifications as the backed up cluster in the same organization.
      An on-demand backup of a bucket is always a Full backup.
      Capella schedules on-demand backup to start immediately.
  - name: Cloud Snapshot Backups Schedule
    description: |
      Couchbase supports a robust scheduled backup and retention time policy as part of an overall disaster recovery plan for production data.
      Couchbase Capella supports scheduled and on-demand backups of cloud snapshot data.
      A backup can be restored to the same database where it was created or another database in the same organization.
      On setting up a backup schedule, the bucket automatically backs up the bucket based on the chosen schedule.
  - name: Clusters
    description: |
      A Couchbase cluster consists of one or more instances of Couchbase Capella, each running on an independent node.
      Data and services are shared across the cluster.
      A cluster may be referred to as a "database" in the documentation and in the Couchbase Capella user interface.
  - name: Data API
    description: |
      Data API is a RESTful interface that allows users to access and manipulate data in your Couchbase Capella cluster.
  - name: Database Credentials
    description: |
      Database credentials provide programmatic and application-level access to data on a database.
      Only database credentials can access data.
  - name: Events
    description: |
      Events represent a trail of actions that users performs within Capella at an organization or project level
  - name: Free Tier
    description: |
      Endpoints to manage resources that are available with free tier plan.  These resources are buckets, clusters and app services.
  - name: Model Services API Keys (AI Services)
    description: |
      Couchbase Capella Model Services uses Bearer token authentication for secure access to the AI models. Each inference request to access the models must include a valid API key in the Authorization header.
      The Model API Keys endpoints enable users to manage (create, retrieve, update, and delete) API keys for the models of a specific region, ensuring secure and controlled access to the models during inferencing.
      The API keys created for a specific region can be used to access all the models available in that region.

      To send inference requests to your models and receive outputs, use the [Model Service API](https://docs.couchbase.com/ai/model-service-api-reference/rest-api.html). For more information, see [Make an API Call with the Model Service API](https://docs.couchbase.com/ai/api-guide/api-use.html#model-api-call).
  - name: Models (AI Services)
    description: |
      The Model Service endpoints allows you to deploy and manage your models - open LLMs like Llama3 and embedding models in Capella close to your data.
      The users can create, get, update, and delete language models.

      To send inference requests to your models and receive outputs, use the [Model Service API](https://docs.couchbase.com/ai/model-service-api-reference/rest-api.html). For more information about the Model Service API, see [Manage Deployments with AI Services APIs](https://docs.couchbase.com/ai/api-guide/api-intro.html#model-service-api).
  - name: Network Peers
    description: |
      Network Peering enables you to configure a secure private network connection between the Virtual Private Cloud (VPC) hosting your applications and the VPC of your Couchbase Capella database.
      You can set a network peering connection from a Couchbase Capella database hosted with Amazon Web Services (AWS), Google Cloud (GCP) or Azure.
  - name: On/Off Schedule
    description: |
      The On/Off Schedule endpoint enables you to schedule when your provisioned database should turn on or off to save costs.
      Turning off your database only turns off the compute;
      all of your data, schema (buckets, scopes, and collections), and indexes remain, as well as your cluster configuration, including users and allow lists.
      When you turn your provisioned database off, you will be charged the OFF amount for the database.
      You can turn the cluster and any linked app services on or off on demand using the [cluster API](https://docs.couchbase.com/cloud/management-api-reference/index.html#tag/clusters).
  - 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: Private Endpoint Service
    description: |
      Access your Capella cluster from your cloud provider's private network.
  - 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: Query Indexes
    description: |
      Used to manage primary and secondary indexes on your Capella cluster.  You can CREATE/ALTER/DROP/BUILD indexes.

      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.
  - name: Replications
    description: |
      Replications (XDCR- Cross Data Center Replication) is a feature that allows you to replicate data across multiple Couchbase clusters.
      Cross Data Center Replication can protect against data-center failure, and also provide high-performance access to data for globally distributed mission-critical applications.
  - name: Sample Bucket
    description: |
      The sampleBucket endpoint lets users easily create a bucket filled with sample data.
      This is a quick way for users to try out features and learn how things work with ready-to-use data.
  - 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'
    get:
      summary: Get Cloud Accounts
      description: |
        Fetches the cloud account ID associated with the organization. Use this account ID when adding CMEK to other AWS databases in your organization.

        To learn more, see [CMEK at Rest](https://docs.couchbase.com/cloud/security/cmek.html).

        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, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - CMEK
      operationId: getCloudAccounts
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudAccounts'
          description: Successfully fetched the cloud account ID associated with 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}/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'
    post:
      summary: Create Free Tier Cluster
      description: |
        Creates a free tier cluster.  This is a 1 node cluster than only runs data, query, index and search services.

        You can have at most 1 free tier cluster per tenant.

        The following features are not available for free tier clusters:
          - backup/restore
          - private endpoint service
          - network peering
          - audit logs
          - alert integration
          - CMEK
          - on/off schedule

        Only cluster name, description, CSP, region and CIDR are configurable.

        There are limited regions available based on CSP:
          a. for AWS they are us-east-2, eu-west-1, ap-southeast-1
          b. for GCP they are us-central1, europe-west1, asia-east1
          c. for Azure they are eastus, swedencentral, koreacentral

        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:
        - Free Tier
      operationId: createFreeTierCluster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFreeTierClusterRequest'
            examples:
              PostFreeTierClusterExample1:
                value:
                  name: Free-Tier-Cluster-1
                  description: My first test AWS cluster for multiple services.
                  cloudProvider:
                    type: aws
                    region: us-east-2
                    cidr: 10.1.30.0/23
      responses:
        '202':
          description: Successfully submitted job to create a free tier cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateClusterResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          description: Request validation error.  For example when client tries to create more than 1 free tier cluster in tenant.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                UnprocessableContent:
                  value:
                    httpStatusCode: 422
                    code: 422
                    message: Unable to process request to create trial cluster. Self service trials are limited to provisioning one cluster.
                    hint: Please review your request and ensure that all required parameters are correctly provided.
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
    post:
      summary: Create Cluster
      description: |
        Creates a new Couchbase Capella provisioned 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:
        - Clusters
      operationId: postCluster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClusterRequest'
            examples:
              PostClusterAWSMultipleServiceGroups:
                value:
                  name: Test-Cluster-1
                  description: My first test AWS cluster for multiple services.
                  cloudProvider:
                    type: aws
                    region: us-east-1
                    cidr: 10.1.30.0/23
                  couchbaseServer:
                    version: '7.2'
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          storage: 50
                          type: gp3
                          iops: 3000
                      numOfNodes: 3
                      services:
                        - data
                        - query
                        - index
                        - search
                    - node:
                        compute:
                          cpu: 4
                          ram: 32
                        disk:
                          storage: 50
                          type: io2
                          iops: 3005
                      numOfNodes: 2
                      services:
                        - analytics
                  availability:
                    type: multi
                  support:
                    plan: developer pro
                    timezone: PT
              PostClusterAWSSingleAvailabilityBasicPlan:
                value:
                  name: Test-Cluster-2
                  description: My test AWS cluster for single availability and basic plan.
                  cloudProvider:
                    type: aws
                    region: us-east-1
                    cidr: 10.1.30.0/23
                  couchbaseServer:
                    version: '7.2'
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          storage: 50
                          type: io2
                          iops: 3000
                      numOfNodes: 3
                      services:
                        - data
                        - query
                        - index
                        - search
                  availability:
                    type: single
                  support:
                    plan: basic
                    timezone: PT
              PostClusterAWSWithoutServerVersion:
                value:
                  name: Test-Cluster-6
                  description: My test AWS cluster without Couchbase Server version.
                  cloudProvider:
                    type: aws
                    region: us-east-1
                    cidr: 10.1.30.0/23
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          storage: 50
                          type: gp3
                          iops: 3000
                      numOfNodes: 3
                      services:
                        - data
                        - query
                        - index
                        - search
                    - node:
                        compute:
                          cpu: 4
                          ram: 32
                        disk:
                          storage: 50
                          type: io2
                          iops: 3005
                      numOfNodes: 2
                      services:
                        - analytics
                  availability:
                    type: multi
                  support:
                    plan: developer pro
                    timezone: PT
              PostClusterAWSWithServerVersionAndMaxNodes:
                value:
                  name: Test-Cluster-7
                  description: My test AWS cluster for Couchbase Server version 7.1.0.
                  cloudProvider:
                    type: aws
                    region: us-east-1
                    cidr: 10.1.30.0/23
                  couchbaseServer:
                    version: '7.2'
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          storage: 50
                          type: gp3
                          iops: 3000
                      numOfNodes: 27
                      services:
                        - data
                        - query
                        - index
                        - search
                  availability:
                    type: multi
                  support:
                    plan: developer pro
                    timezone: PT
              PostClusterAWSWithServerWithMaxNodes:
                value:
                  name: Test-Cluster-8
                  description: My test AWS cluster with max nodes.
                  cloudProvider:
                    type: aws
                    region: us-east-1
                    cidr: 10.1.30.0/23
                  couchbaseServer:
                    version: '7.2'
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          storage: 50
                          type: gp3
                          iops: 3000
                      numOfNodes: 3
                      services:
                        - data
                        - query
                        - index
                        - search
                    - node:
                        compute:
                          cpu: 4
                          ram: 32
                        disk:
                          storage: 50
                          type: io2
                          iops: 3005
                      numOfNodes: 24
                      services:
                        - analytics
                  availability:
                    type: single
                  support:
                    plan: developer pro
                    timezone: PT
              PostClusterAzurePremiumDisk:
                value:
                  name: Test-Cluster-3
                  description: My first test Azure cluster.
                  cloudProvider:
                    type: azure
                    region: eastus
                    cidr: 10.1.30.0/23
                  couchbaseServer:
                    version: '7.2'
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          type: P6
                      numOfNodes: 3
                      services:
                        - data
                        - query
                        - index
                        - search
                    - node:
                        compute:
                          cpu: 4
                          ram: 32
                        disk:
                          type: P10
                      numOfNodes: 4
                      services:
                        - analytics
                  availability:
                    type: single
                  support:
                    plan: developer pro
                    timezone: ET
              PostClusterAzureUltraDisk:
                value:
                  name: Test-Cluster-4
                  description: My second test Azure cluster with Ultra.
                  cloudProvider:
                    type: azure
                    region: eastus
                    cidr: 10.1.30.0/23
                  couchbaseServer:
                    version: '7.2'
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          storage: 1024
                          type: Ultra
                          iops: 2000
                      numOfNodes: 3
                      services:
                        - data
                        - query
                        - index
                        - search
                        - analytics
                  availability:
                    type: multi
                  support:
                    plan: developer pro
                    timezone: PT
              PostClusterAzureWithAutoExpansion:
                value:
                  name: Test-Cluster-5
                  description: My third test Azure cluster.
                  cloudProvider:
                    type: azure
                    region: eastus
                    cidr: 10.1.30.0/23
                  couchbaseServer:
                    version: '7.2'
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          type: P6
                          autoExpansion: true
                      numOfNodes: 3
                      services:
                        - data
                        - index
                    - node:
                        compute:
                          cpu: 4
                          ram: 32
                        disk:
                          type: P6
                          autoExpansion: false
                      numOfNodes: 3
                      services:
                        - query
                  availability:
                    type: single
                  support:
                    plan: developer pro
                    timezone: ET
              PostClusterGCP:
                value:
                  name: Test-Cluster-5
                  description: My first test GCP cluster.
                  cloudProvider:
                    type: gcp
                    region: us-east1
                    cidr: 10.1.30.0/23
                  couchbaseServer:
                    version: '7.2'
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          storage: 64
                          type: pd-ssd
                      numOfNodes: 3
                      services:
                        - data
                        - query
                        - index
                        - search
                  availability:
                    type: single
                  support:
                    plan: basic
                    timezone: ET
              PostCMEKCluster:
                value:
                  name: CMEKCluster
                  description: My first test AWS cluster for multiple services.
                  cmekId: ffffffff-aaaa-1414-eeee-000000000000
                  cloudProvider:
                    type: aws
                    region: us-east-1
                    cidr: 10.1.30.0/23
                  couchbaseServer:
                    version: '7.2'
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          storage: 50
                          type: gp3
                          iops: 3000
                      numOfNodes: 3
                      services:
                        - data
                        - query
                        - index
                        - search
                    - node:
                        compute:
                          cpu: 4
                          ram: 32
                        disk:
                          storage: 50
                          type: io2
                          iops: 3005
                      numOfNodes: 2
                      services:
                        - analytics
                  availability:
                    type: multi
                  support:
                    plan: enterprise
                    timezone: PT
              PostClusterEnabledPrivateDNSResolution:
                value:
                  name: Test-Cluster-1
                  description: My test AWS cluster with Private DNS Resolution enabled.
                  enablePrivateDNSResolution: true
                  cloudProvider:
                    type: aws
                    region: us-east-1
                    cidr: 10.1.30.0/23
                  couchbaseServer:
                    version: '7.6'
                  serviceGroups:
                    - node:
                        compute:
                          cpu: 4
                          ram: 16
                        disk:
                          storage: 50
                          type: gp3
                          iops: 3000
                      numOfNodes: 3
                      services:
                        - data
                        - query
                        - index
                        - search
                    - node:
                        compute:
                          cpu: 4
                          ram: 32
                        disk:
                          storage: 50
                          type: io2
                          iops: 3005
                      numOfNodes: 2
                      services:
                        - analytics
                  availability:
                    type: multi
                  support:
                    plan: developer pro
                    timezone: PT
      responses:
        '202':
          description: Successfully created a cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateClusterResponse'
        '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 Clusters
      description: |
        Lists all the clusters 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

        Returned set of clusters is reduced to what the caller has access to view.
        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Clusters
      operationId: listClusters
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/ClustersSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed all the clusters under the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClustersResponse'
        '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}/clusters/freeTier/{clusterId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: Get Free Tier Cluster
      description: |
        Get details of the free tier cluster.

        While only cluster name, description, CSP, region and CIDR are configurable, other read only fields are retrieved.

        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:
        - Free Tier
      operationId: getFreeTierCluster
      responses:
        '200':
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          description: Successfully got the free tier cluster.
          content:
            application/json:
              schema:
                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:
                    type: object
                    required:
                      - plan
                      - timezone
                    properties:
                      plan:
                        type: string
                        enum:
                          - free
                        example: free
                      timezone:
                        $ref: '#/components/schemas/SupportTimezone'
                  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
        '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 Free Tier Cluster
      description: |
        Updates an existing free tier cluster.  Only name and description are configurable.

        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:
        - Free Tier
      operationId: updateFreeTierCluster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFreeTierClusterRequest'
      responses:
        '204':
          description: Successfully updated free tier cluster.
        '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'
    delete:
      summary: Delete Free Tier Cluster
      description: |
        Deletes an existing free tier 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:
        - Free Tier
      operationId: deleteFreeTierCluster
      responses:
        '202':
          description: Successfully submitted request to delete the free tier cluster.
        '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}/clusters/{clusterId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: Get Cluster
      description: |
        Fetches the details of the 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
         - 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:
        - Clusters
      operationId: getCluster
      responses:
        '200':
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          description: Successfully fetched the cluster based on the clusterId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClusterResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Update Cluster
      description: |
        Updates an existing 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).
      parameters:
        - $ref: '#/components/parameters/If-Match'
      tags:
        - Clusters
      operationId: putCluster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateClusterRequest'
      responses:
        '204':
          description: Successfully submitted request to update cluster.
        '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'
    delete:
      summary: Delete Cluster
      description: |
        Deletes an existing 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:
        - Clusters
      operationId: deleteCluster
      parameters:
        - name: retainsnapshotbackups
          in: query
          description: Retain snapshot backups parameter specifies whether to retain snapshot backups after cluster deletion.
          required: false
          schema:
            type: boolean
            example: true
      responses:
        '202':
          description: Successfully deleted the cluster by its clusterId.
        '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}/stats:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: Get Cluster Capacity Stats
      description: |
        Fetches cluster-level capacity statistics including memory availability and replica limits.

        This endpoint provides cluster capacity information that is not specific to any individual bucket,
        allowing clients to make informed decisions when managing buckets.

        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:
        - Clusters
      operationId: getClusterStats
      responses:
        '200':
          description: Successfully fetched the cluster capacity statistics.
          content:
            application/json:
              schema:
                type: object
                description: |
                  Cluster capacity statistics including memory availability and replica limits.

                  These values represent the current cluster capacity and may change over time as cluster usage changes.
                required:
                  - freeMemoryInMb
                  - totalMemoryInMb
                  - maxReplicas
                properties:
                  freeMemoryInMb:
                    type: integer
                    description: Available (unallocated) memory in the cluster in megabytes.
                    example: 640
                  totalMemoryInMb:
                    type: integer
                    description: Total memory capacity of the cluster in megabytes.
                    example: 1040
                  maxReplicas:
                    type: integer
                    description: Maximum supported replica count for buckets in this cluster.
                    example: 2
              examples:
                ClusterStats:
                  value:
                    freeMemoryInMb: 640
                    totalMemoryInMb: 1040
                    maxReplicas: 2
        '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/freeTier/{clusterId}/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Turn On Free Tier Cluster
      description: |
        Turn free tier cluster on.  It will also turn on the linked app services, if any.

        In order to access this endpoint, the provided API key must have at least one of the roles referenced below:
        - 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:
        - Free Tier
      operationId: freeTierClusterOn
      responses:
        '202':
          description: Successfully switched the free tier cluster to on state.
        '400':
          $ref: '#/components/responses/BadRequest'
        '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 Free Tier Cluster
      description: |
        Turn free tier cluster off.

        - Turning off your cluster turns off the compute for your cluster but the storage remains.
        All of the data, schema (buckets, scopes, and collections), and indexes remain, as well as cluster configuration, including users and allow lists.

        - Turning off cluster will also turn off any linked app services.

         In order to access this endpoint, the provided API key must have at least one of the roles referenced below:
        - 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:
        - Free Tier
      operationId: freeTierClusterOff
      responses:
        '202':
          description: Successfully switched the free tier cluster to off state.
        '400':
          $ref: '#/components/responses/BadRequest'
        '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}/clusters/{clusterId}/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Turn On Cluster
      description: |
        Turn 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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Clusters
      operationId: clusterOn
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClusterOnRequest'
            examples:
              ClusterOnAppServiceOn:
                value:
                  turnOnLinkedAppService: true
              ClusterOnAppServiceOff:
                value:
                  turnOnLinkedAppService: false
      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 Cluster
      description: |
        Turn cluster off.

        - Turning off your cluster turns off the compute for your cluster but the storage remains.
        All of the data, schema (buckets, scopes, and collections), and indexes remain, as well as cluster configuration, including users and allow lists.

        - Turning off cluster will also turn off any linked app services.

        - Turning off cluster will not stop charges being incurred for Data API.

         In order to access this endpoint, the provided API key must have at least one of the roles referenced below:
        - 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:
        - Clusters
      operationId: clusterOff
      responses:
        '202':
          description: Successfully switched the 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}/clusters/{clusterId}/onOffSchedule:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Create Cluster On/Off schedule
      description: |
        This provides the means to add a new 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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - On/Off Schedule
      operationId: postOnOffSchedule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterOnOffSchedule'
            examples:
              PostClusterOnOffSchedule:
                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'
              PostClusterOnOffScheduleDefaultBoundaryWithoutToBody:
                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'
              PostClusterOnOffScheduleDefaultsBoundaryWithoutHourMinute:
                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'
              PostClusterOnOffScheduleDefaultsBoundary:
                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'
              PostClusterOnOffScheduleDefaultsBoundaryWithoutHourMinuteBody:
                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 the cluster on/off schedule based on the 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 Cluster On/Off schedule
      description: |
        Fetches the details of the cluster on/off schedule for the 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

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - On/Off Schedule
      operationId: putOnOffSchedule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterOnOffSchedule'
      responses:
        '204':
          description: Successfully updated the cluster on/off schedule based on the 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 Cluster On/Off schedule
      description: |
        Deletes the cluster on/off schedule for the 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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - On/Off Schedule
      operationId: deleteOnOffSchedule
      responses:
        '204':
          description: Successfully deleted the cluster on/off schedule by its 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}/clusters/{clusterId}/onOffSchedule/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    delete:
      summary: Pause Cluster On/Off Schedule
      description: |
        Temporarily suspends the cluster on/off schedule without deleting its configuration.
        While paused, the cluster will not automatically start or stop based on the defined schedule.
        You can resume the schedule at any time using the corresponding unpause endpoint.

        In order to access this endpoint, the provided API key must have at least one of the roles referenced below:
        - 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:
        - On/Off Schedule
      operationId: pauseClusterOnOffSchedule
      responses:
        '204':
          description: Successfully paused the cluster on/off schedule
        '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'
    post:
      summary: Unpause Cluster On/Off Schedule
      description: |
        Unpause 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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - On/Off Schedule
      operationId: unpauseClusterOnOffSchedule
      responses:
        '204':
          description: Successfully unpaused the cluster on/off schedule
        '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}/clusters/{clusterId}/auditLog:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    put:
      summary: Update Cluster Audit Log Configuration
      description: |
        Updates the audit log configuration for the 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:
        - Audit Logs
      operationId: putClusterAuditSettings
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClusterAuditSettingsRequest'
            examples:
              PutClusterEnableAuditLogging:
                value:
                  auditEnabled: true
                  disabledUsers:
                    - domain: local
                      name: '@eventing'
                  enabledEventIDs:
                    - 8243
                    - 8255
      responses:
        '204':
          description: Successfully updated the cluster audit log configuration.
        '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 Cluster Audit Log Configuration
      description: |
        Fetches information on whether audit logging is enabled, and which event IDs are enabled.

        To learn more about cluster audit logs, please refer to [audit management](https://docs.couchbase.com/cloud/security/audit-management.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Audit Logs
      operationId: getClusterAuditSettings
      responses:
        '200':
          description: Successfully retrieved the cluster audit log settings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClusterAuditSettingsResponse'
        '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}/auditLogEvents:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: List Filterable Audit Log Events
      description: |
        Retrieves a list of audit event IDs. The list of filterable event IDs can be specified while configuring audit log for 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
         - 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:
        - Audit Logs
      operationId: getAuditLogEventIDs
      responses:
        '200':
          description: Successfully retrieved audit event Ids.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAuditLogEventsResponse'
        '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}/auditLogExports:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Create Cluster Audit Log Export job
      description: |
        Creates a new audit log export job.

        Audit Logs for the last 30 days can be requested, otherwise they are purged. A pre-signed URL to a s3 bucket location is returned, which is used to download these audit logs.

        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:
        - Audit Logs
      operationId: postAuditLogExport
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClusterAuditLogExportRequest'
            examples:
              PostClusterCreateAuditLogExport:
                value:
                  start: '2022-09-04T00:56:07.000Z'
                  end: '2022-09-05T04:56:07.000Z'
      responses:
        '202':
          description: Successfully created audit export job for the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateClusterAuditLogExportResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          description: Request validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                StartTooFarInPast:
                  value:
                    httpStatusCode: 422
                    code: 4033
                    message: Requested audit log export time range is invalid because the start time is more than 30 days in the past.
                    hint: Please specify start time less than 30 days ago.
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: List Cluster Audit Log Export Jobs
      description: |
        Lists all the audit log export jobs and shows the status for each job.

        It will show the pre-signed URL if the export was successful, a failure error if it was unsuccessful or a message saying no audit logs available if there were no audit logs found.

        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:
        - Audit Logs
      operationId: listAuditLogExports
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
      responses:
        '200':
          description: Successfully lists all audit export jobs for the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClusterAuditLogExportsResponse'
              example:
                cursor:
                  pages:
                    last: 1
                    next: 1
                    page: 1
                    perPage: 10
                    previous: 1
                    totalItems: 2
                  hrefs:
                    first: https://cloudapi.cloud.couchbase.com/v4/organizations/ffffffff-aaaa-1414-eeee-000000000000/projects/ffffffff-aaaa-1414-eeee-000000000000/clusters/ffffffff-aaaa-1414-eeee-000000000000/auditLogExports?page=1&perPage=10
                    last: https://cloudapi.cloud.couchbase.com/v4/organizations/ffffffff-aaaa-1414-eeee-000000000000/projects/ffffffff-aaaa-1414-eeee-000000000000/clusters/ffffffff-aaaa-1414-eeee-000000000000/auditLogExports?page=1&perPage=10
                    next: https://cloudapi.cloud.couchbase.com/v4/organizations/ffffffff-aaaa-1414-eeee-000000000000/projects/ffffffff-aaaa-1414-eeee-000000000000/clusters/ffffffff-aaaa-1414-eeee-000000000000/auditLogExports?page=1&perPage=10
                    previous: ''
                data:
                  - createdAt: '2023-05-16T06:43:46.264296574Z'
                    exportId: d9db8594-4d0d-43b5-8dfe-1a6679d5b7d3
                    start: '2023-05-15T04:56:07Z'
                    end: '2023-05-16T06:43:46.255479842Z'
                    status: Failed
                  - createdAt: '2023-05-16T06:39:33.745602046Z'
                    exportId: 624752e7-4600-4007-9a29-15d1323fbd0c
                    start: '2023-05-15T04:56:07Z'
                    end: '2023-05-16T06:39:33.732661698Z'
                    status: Queued
        '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}/auditLogExports/{auditLogExportId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AuditLogExportId'
    get:
      summary: Get Cluster Audit Log Export
      description: |
        Fetches the status of a single audit log export job.

        It will show the pre-signed URL if the export was successful, a failure error if it was unsuccessful or a message saying no audit logs available if there were no audit logs found during the given timeframe.

        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:
        - Audit Logs
      operationId: getAuditLogExport
      responses:
        '200':
          description: Successfully retrieved audit export job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetClusterAuditLogExportResponse'
              examples:
                InProgress:
                  value:
                    createdAt: '2023-05-16T04:00:08.870076042Z'
                    auditLogExportId: 40b9318a-cc93-458d-bc3e-7d4ffa778386
                    start: '2023-05-15T04:56:07Z'
                    end: '2023-05-16T04:56:07Z'
                    status: In Progress
                Queued:
                  value:
                    createdAt: '2023-05-16T04:00:08.870076042Z'
                    auditLogExportId: 40b9318a-cc93-458d-bc3e-7d4ffa778386
                    start: '2023-05-15T04:56:07Z'
                    end: '2023-05-16T04:56:07Z'
                    status: Queued
                Failed:
                  value:
                    createdAt: '2023-05-16T04:00:08.870076042Z'
                    auditLogExportId: 40b9318a-cc93-458d-bc3e-7d4ffa778386
                    start: '2023-05-15T04:56:07Z'
                    end: '2023-05-16T04:56:07Z'
                    status: Failed
                Completed:
                  value:
                    createdAt: '2023-05-16T04:00:08.870076042Z'
                    auditLogExportId: 40b9318a-cc93-458d-bc3e-7d4ffa778386
                    start: '2023-05-15T04:56:07Z'
                    end: '2023-05-16T04:56:07Z'
                    status: Completed
                    auditLogDownloadURL: https://cb-audit-logs-ffffffff-aaaa-1414-eeee-000000000000.s3.amazonaws.com/export/audit-logs-cluster-ffffffff-aaaa-1414-eeee-000000000000-from-2222-08-25%2007%3A52%3A44.377%20%2B0000%20UTC-to-2222-09-01%2007%3A52%3A44.377%20%2B0000%20UTC.tar.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=JX7GZ5Q1WK9X7GZ5Q1WJF%2F20220901%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220901T080237Z&X-Amz-Expires=259200&X-Amz-Security-Token=9qD87zY0m2fT4V3x6hC1sW5B2kEuG9jP7rA4N8Q0bO6lK5I3&X-Amz-SignedHeaders=host&X-Amz-Signature=k9X7gZ5Q1W
                    expiration: '2023-05-19T04:00:08.870076042Z'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/cmekAzureApplication:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    get:
      summary: Get Azure Application ID
      description: |
        Retrieves the application ID so that the customer can install the service principal in their Azure tenant.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - CMEK
      operationId: getAzureApplicationID
      responses:
        '200':
          description: Successfully retrieved the Azure application ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAzureCMEKApplicationResponse'
        '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}/cmekAzureApplication:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
    get:
      summary: Get Azure Application ID For Project
      description: |
        Retrieves the application ID so that the customer can install the service principal in their Azure tenant for a specific project.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Organization Member
        - 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:
        - CMEK
      operationId: getAzureApplicationIDForProject
      responses:
        '200':
          description: Successfully retrieved the Azure application ID for a project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAzureCMEKApplicationResponse'
        '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}/cmek:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    post:
      summary: Create Key Metadata
      description: |
        Initializes the metadata record for a customer-managed encryption key stored in AWS, GCP or Azure, linking it to the organization.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - CMEK
      operationId: postCMEKMetadata
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCMEKMetadata'
      responses:
        '200':
          description: Successfully created the encryption key metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCMEKMetadataResponse'
        '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 Key Metadata
      description: |
        Retrieves detailed metadata for all customer-managed encryption keys associated with the organization.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - CMEK
      operationId: getKeyMetadataList
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/CMEKKeysSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed the detailed metadata for all encryption keys associated with the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCMEKMetadataListResponse'
        '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}/cmek:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
    post:
      summary: Create Azure Key Metadata For Project
      description: |
        Initializes the metadata record for a customer-managed encryption key stored for a project. This only applies
        to Azure.

        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:
        - CMEK
      operationId: postCMEKAzureMetadataForProject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCMEKAzureMetadata'
      responses:
        '201':
          description: Successfully created the encryption key metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCMEKMetadataResponse'
        '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 Azure Key Metadata For Project
      description: |
        Retrieves detailed metadata for all Azure customer-managed encryption keys associated with the 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:
        - CMEK
      operationId: getAzureKeyMetadataListForProject
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/CMEKKeysSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed the detailed metadata for all Azure encryption keys associated with the project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCMEKAzureMetadataListResponse'
        '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}/cmek/{cmekId}/history:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/CMEKId'
    get:
      summary: List Key Rotation History
      description: |
        Retrieves the full history of rotations for a specific customer-managed encryption key within the organization.
        In order to access this endpoint, the provided API key must have at least one of the following roles:
         - Organization Owner
         - Organization Member
        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - CMEK
      operationId: listCMEKHistory
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - 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: **active**, **associatedAt**, **associatedBy**, **key**
          example: active
          required: false
          schema:
            type: string
            enum:
              - active
              - associatedAt
              - associatedBy
              - key
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully fetched the key rotation history based on its ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCMEKHistoryMetadataListResponse'
              examples:
                listCMEKHistory:
                  value:
                    cursor:
                      hrefs: {}
                      pages:
                        last: 1
                        page: 1
                        perPage: 2
                        totalItems: 2
                    data:
                      - config:
                          arn: arn:aws:kms:us-west-2:123456789012:key/12345678-1234-1234-1234-123456789012
                        active: true
                        associatedBy: ffffffff-aaaa-1414-eeee-000000000000
                        associatedAt: '2023-09-01T12:34:56Z'
                      - config:
                          arn: arn:aws:kms:us-west-2:000000000000:key/00000000-0000-0000-0000-000000000000
                        active: false
                        associatedBy: ffffffff-aaaa-1414-eeee-000000000000
                        associatedAt: '2023-09-01T12:34:56Z'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/cmek/{cmekId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/CMEKId'
    get:
      summary: Get Key Metadata
      description: |
        Retrieves the full metadata details for a specific customer-managed encryption key within the organization.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - CMEK
      operationId: getKeyMetadata
      responses:
        '200':
          description: Successfully fetched the encryption key details based on its ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCMEKMetadata'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Rotate Key
      description: |
        Initiates the process to rotate a customer-managed encryption key and update its associated metadata within the system.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - CMEK
      operationId: rotateCMEKKey
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RotateCMEKKey'
      responses:
        '204':
          description: Successfully submitted request to rotate the encryption key.
        '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'
    delete:
      summary: Delete Key Metadata
      description: |
        Permanently removes the specified customer-managed encryption key's metadata from the organization's account.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - CMEK
      operationId: deleteKeyMetadata
      responses:
        '204':
          description: Successfully deleted the the specified encryption key's metadata by its ID.
        '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}/cmek/{cmekId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/CMEKId'
    get:
      summary: Get Azure Key Metadata For Project
      description: |
        Retrieves the full metadata details for a specific Azure customer-managed encryption key in a 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:
        - CMEK
      operationId: getAzureKeyMetadataForProject
      responses:
        '200':
          description: Successfully fetched the encryption key details based on its ID in a project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCMEKAzureMetadataResponse'
        '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: Rotate Azure Key For Project
      description: |
        Initiates the process to rotate an Azure customer-managed encryption key in a project and update its associated metadata within the system.

        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:
        - CMEK
      operationId: rotateAzureKeyMetadataForProject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RotateAzureKey'
      responses:
        '204':
          description: Successfully submitted request to rotate the encryption key.
        '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'
    delete:
      summary: Delete Azure Key Metadata For Project
      description: |
        Permanently removes the specified Azure customer-managed encryption key's metadata from the 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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - CMEK
      operationId: deleteAzureKeyMetadataForProject
      responses:
        '204':
          description: Successfully deleted the specified encryption key's metadata by its ID in a project.
        '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}/cmek/providers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    put:
      summary: Enable CMEK For Cloud Services Provider
      description: |
        Enables the customer-managed encryption keys feature for the specified cloud service provider within the
        organization.

        For AWS and GCP enabling the customer-managed encryption keys feature is only required if no AWS or GCP cluster
        respectively has ever been created in the organization.

        The customer-managed encryption keys feature must always be enabled for Azure before Azure keys can be created.
        This operation provisions a multi-tenant Azure Entra ID application for the organization, which is required for
        Capella to access customer-managed encryption keys.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - CMEK
      operationId: enableCMEK
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cloudProvider
              properties:
                cloudProvider:
                  type: string
                  description: Cloud provider for CMEK keys.
                  enum:
                    - aws
                    - gcp
                    - azure
                  example: aws
      responses:
        '204':
          description: Successfully enabled the CMEK feature for the cloud services provider.
        '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'
  /v4/organizations/{organizationId}/projects/{projectId}/cmek/providers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
    put:
      summary: Enable Azure CMEK For Project
      description: |
        Enables the customer-managed encryption keys feature for Azure on a project.

        The customer-managed encryption keys feature must always be enabled for Azure before Azure keys can be created.
        This operation provisions a multi-tenant Azure Entra ID application for a project, which is required for
        Capella to access customer-managed encryption keys.

        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:
        - CMEK
      operationId: enableCMEKAzureProject
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnableCMEKAzureRequest'
      responses:
        '204':
          description: Successfully enabled the Azure CMEK feature for a project.
        '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'
  /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'
    post:
      summary: Associate Key with Cluster
      description: |
        Redeploys the cluster and encrypts the disks with the newly associated customer-managed encryption key.
        Throws an error before redeploying the cluster if the customer-managed encryption key is inaccessible.

        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:
        - CMEK
      operationId: AssociateCMEK
      responses:
        '204':
          description: Successfully associated the key with the cluster and encrypted the disks.
        '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}/cmek/{cmekId}/unassociate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/CMEKId'
    post:
      summary: Unassociate Key from Cluster
      description: |
        Removes the customer-managed encryption key associated with the cluster, which redeploys the cluster and removes any encryption on the disks.
        This does not delete the customer-managed encryption key itself since the same key could be used across clusters.

        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:
        - CMEK
      operationId: UnassociateCMEK
      responses:
        '204':
          description: Successfully disassociated the key from the cluster and removed encryption.
        '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}/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'
    post:
      summary: Create Allowed CIDR
      description: |
        Adds a trusted CIDR to a cluster'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 (Cluster)
      operationId: postAllowedCidrs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAllowedCidrRequest'
      responses:
        '201':
          description: Successfully added an allowed CIDR for the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAllowedCidrResponse'
        '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 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
        - 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:
        - Allowed CIDRs (Cluster)
      operationId: listAllowedCidrs
      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 cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllowedCidrsResponse'
        '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}/clusters/{clusterId}/allowedcidrs/{allowedCidrId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $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
        - 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:
        - Allowed CIDRs (Cluster)
      operationId: getAllowedCidrByID
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllowedCidr'
          description: Successfully fetched the allowed CIDR details.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '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 (Cluster)
      operationId: deleteAllowedCidrByID
      responses:
        '204':
          description: Successfully deleted the allowed CIDR by its ID.
        '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}/users:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: List Database Credentials
      description: |
        Lists all the database credential information under a 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 Viewer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Database Credentials
      operationId: listDatabaseCredentials
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/DatabaseCredentialsSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed all the database credentials under the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDatabaseCredentialsResponse'
              examples:
                GetAllDatabaseCredentials:
                  value:
                    cursor:
                      pages:
                        page: 2
                        next: 3
                        previous: 1
                        last: 10
                        perPage: 10
                        totalItems: 10
                      hrefs:
                        first: https://cloud.couchbase.com/v4/ffffffff-aaaa-1414-eeee-000000000000/ffffffff-aaaa-1414-eeee-000000000000/ffffffff-aaaa-1414-eeee-000000000000?page=2&perPage=10
                        last: https://cloud.couchbase.com/v4/ffffffff-aaaa-1414-eeee-000000000000/ffffffff-aaaa-1414-eeee-000000000000/ffffffff-aaaa-1414-eeee-000000000000?page=10&perPage=10
                        previous: https://cloud.couchbase.com/v4/ffffffff-aaaa-1414-eeee-000000000000/ffffffff-aaaa-1414-eeee-000000000000/ffffffff-aaaa-1414-eeee-000000000000?page=1&perPage=10
                        next: https://cloud.couchbase.com/v4/ffffffff-aaaa-1414-eeee-000000000000/ffffffff-aaaa-1414-eeee-000000000000/ffffffff-aaaa-1414-eeee-000000000000?page=3&perPage=10
                    data:
                      - id: ffffffff-aaaa-1414-eeee-000000000000
                        name: ReadInventory
                        audit:
                          createdBy: ffffffff-aaaa-1414-eeee-000000000000
                          createdAt: '2021-09-01T12:34:56Z'
                          modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                          modifiedAt: '2021-09-01T12:34:56Z'
                          version: 1
                        access:
                          - privileges:
                              - data_reader
                              - data_writer
                            resources:
                              buckets:
                                - name: travel-sample
                                  scopes:
                                    - name: inventory
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      summary: Create Database Credentials
      description: |
        Creates a new database credential under a cluster.

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

        Valid fields to sort the results are: "id", "name".

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Database Credentials
      operationId: postDatabaseCredential
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDatabaseCredentialRequest'
            examples:
              ReadWriteOnSomeCollections:
                value:
                  name: ReadWriteOnSpecificCollections
                  access:
                    - privileges:
                        - data_reader
                        - data_writer
                      resources:
                        buckets:
                          - name: travel-sample
                            scopes:
                              - name: inventory
                                collections:
                                  - airport
                                  - airline
              ReadAndWriteOnAllCollectionsInABucketAndScope:
                value:
                  name: ReadWriteOnAllCollectionsInAScopeAndBucket
                  access:
                    - privileges:
                        - read
                        - write
                      resources:
                        buckets:
                          - name: travel-sample
                            scopes:
                              - name: inventory
              ReadAccessOnAllBuckets:
                value:
                  name: ReadAccessForAllBuckets
                  access:
                    - privileges:
                        - data_reader
              SeparateAccessForDifferentScopes:
                value:
                  name: SeparateAccessForDifferentScopes
                  access:
                    - privileges:
                        - data_reader
                      resources:
                        buckets:
                          - name: travel-sample
                            scopes:
                              - name: inventory
                    - privileges:
                        - data_writer
                      resources:
                        buckets:
                          - name: travel-sample
                            scopes:
                              - name: sales
              WriteAccessForAllBuckets:
                value:
                  name: WriteAccessForAllBuckets
                  access:
                    - privileges:
                        - data_writer
              MultipleLevelOfAccess:
                value:
                  name: MultipleLevelOfAccess
                  access:
                    - privileges:
                        - data_reader
                      resources:
                        buckets:
                          - name: travel-sample
                            scopes:
                              - name: inventory
                                collections:
                                  - airport
                                  - airline
                    - privileges:
                        - data_writer
                      resources:
                        buckets:
                          - name: travel-sample
                            scopes:
                              - name: inventory
                                collections:
                                  - sales
      responses:
        '201':
          description: Successfully created a database access record under a cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDatabaseCredentialResponse'
        '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'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices/freeTier:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Create Free Tier App Service
      description: |
        Creates a free tier App Service. This is a 1 node cluster which can only be linked to a free tier cluster.

        The following features are not available for free tier clusters:
          - audit logging 
          - turn App Service off/on

        Free tier App Service can only be turned off/on when the linked free tier cluster is turned off/on.

        Only name a description are configurable.

        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:
        - Free Tier
      operationId: createFreeTierAppService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFreeTierAppServiceRequest'
      responses:
        '202':
          description: Successfully submitted request to create a free tier app cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAppServicesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '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'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/appservices:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Create App Service
      description: |
        Creates a new App Service.

        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:
        - App Services
      operationId: postAppService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAppServicerRequest'
      responses:
        '201':
          description: Successfully created an App Service.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAppServicesResponse'
        '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}/appservices:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    get:
      summary: List AppServices
      description: |
        Lists all the clusters under the organization.

        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
        - Project Viewer
        - Database Data Reader/Writer
        - Database Data Reader

        Returned set of clusters is reduced to what the caller has access to view.
        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - App Services
      operationId: listAppServices
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/AppServicesSortBy'
        - $ref: '#/components/parameters/SortDirection'
        - $ref: '#/components/parameters/ProjectIdQuery'
      responses:
        '200':
          description: Successfully listed appservices matching query.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAppServicesResponse'
        '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}/appservices/freeTier/{appServiceId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
    get:
      summary: Get Free Tier App Service
      description: |
        Fetches the details of the free tier App Service.

        While only name and description are configurable, other read only fields will be displayed.

        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
         - 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:
        - Free Tier
      operationId: getFreeTierAppService
      responses:
        '200':
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          description: Successfully fetched the free tier App Service.
          content:
            application/json:
              schema:
                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:
                    type: string
                    enum:
                      - free
                    example: free
                  audit:
                    $ref: '#/components/schemas/CouchbaseAuditData'
        '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 Free Tier App Service
      description: |
        Updates an existing free tier App Service. Only name and description are configurable.

        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).
      parameters:
        - $ref: '#/components/parameters/If-Match'
      tags:
        - Free Tier
      operationId: updateFreeTierAppService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFreeTierAppServiceRequest'
      responses:
        '204':
          description: Successfully updated the free tier App 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'
    delete:
      summary: Delete Free Tier App Service
      description: |
        Deletes an existing free tier App Service.

        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:
        - Free Tier
      operationId: deleteFreeTierAppService
      responses:
        '202':
          description: Successfully submitted request to delete the free tier App Service.
        '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}/clusters/{clusterId}/appservices/{appServiceId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
    get:
      summary: Get App Service
      description: |
        Fetches the details of the given App Service.

        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
         - 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:
        - App Services
      operationId: getAppService
      responses:
        '200':
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          description: Successfully fetched the App Service based on the appServiceId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAppServiceResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Update App Service
      description: |
        Updates an existing App Service.

        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).
      parameters:
        - $ref: '#/components/parameters/If-Match'
      tags:
        - App Services
      operationId: putAppService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAppServiceRequest'
      responses:
        '204':
          description: Successfully updated the App Service metadata.
        '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'
    delete:
      summary: Delete App Service
      description: |
        Deletes an existing App Service.

        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:
        - App Services
      operationId: deleteAppService
      responses:
        '202':
          description: Successfully deleted the App Service by its appServiceId.
        '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'
  /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'
    post:
      summary: Turn On App Service
      description: |
        Turn App Service on. App Services can only be turned on when the linked cluster is turned on and healthy.

        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:
        - App Services
      operationId: appServiceOn
      responses:
        '202':
          description: Successfully switched the App Service to on state.
        '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: Turn Off App Service
      description: |
        Turn App Service off.

        Turn off an App Service to temporarily deactivate it and reduce its consumption of compute resources.
        The App Service itself and its related infrastructure will be removed once turned off.

        Any private endpoints configured on App Services will remain and will be available when App Service is turned back
        on. You will continue to incur costs for any private endpoints configured on App Services.  If you don’t wish to
        incur these costs, you must explicitly disable private endpoint service and reinstate private endpoints when App
        Service is turned back on again.

        Free tier App Service can only be turned off when the linked free tier cluster is turned off.

        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:
        - App Services
      operationId: appServiceOff
      responses:
        '202':
          description: Successfully switched the App Service to off state.
        '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/{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'
    delete:
      summary: Delete App Service Allowed CIDR
      description: |
        Deletes an Allowed CIDR by ID on the specified App Service.

        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 (App Services)
      operationId: deleteAppServiceAllowedCidr
      responses:
        '204':
          description: Successfully deleted the Allowed CIDR by its ID.
        '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/{clusterId}/appservices/{appServiceId}/allowedcidrs:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
    get:
      summary: List Allowed CIDRs for an App Service
      description: |
        Lists the Allowed CIDRs for the specified App Service.

        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 (App Services)
      operationId: listAppServiceAllowedCidrs
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/AllowedCidrsSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully retrieved the allowed CIDRs for the App Service.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAppServiceAllowedCidrsResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      summary: Create Allowed CIDR
      description: |
        Adds a trusted CIDR to the specified App Service'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).
      tags:
        - Allowed CIDRs (App Services)
      operationId: postAppServiceAllowedCidr
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - cidr
              properties:
                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: 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'
      responses:
        '201':
          description: Successfully added an Allowed CIDR for the App Service.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAllowedCidrResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '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}/clusters/{clusterId}/appservices/{appServiceId}/adminUsers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
    post:
      summary: Create App Service Admin User
      description: |
        Creates an Admin User on the specified App Service.
        The user can either be granted access to all App Endpoints or to specific App Endpoints by listing them in the ```endpoints``` field.

        Currently, the user will 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.
        An option to grant access to specific App Endpoints in a bucket will be available in the future.

        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:
        - App Services
      operationId: AddAppServiceAdminUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAppServiceAdminUserRequest'
            examples:
              CreateAdminUserSpecificEndpoints:
                value:
                  name: user1
                  password: password
                  enableBucketLevelAccess: false
                  access:
                    endpoints:
                      - endpoint1
                      - endpoint2
              CreateAdminUserAllEndpoints:
                value:
                  name: user1
                  password: password
                  access:
                    accessAllEndpoints: true
      responses:
        '201':
          description: Successfully created an App Service Admin User.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAppServiceAdminUserResponse'
        '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 App Service Admin Users
      description: |
        List the admin users for the specified App Service.

        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:
        - App Services
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/SortDirection'
      operationId: ListAppServiceAdminUsers
      responses:
        '200':
          description: Successfully listed the Admin Users for the specified App Service.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAdminUsersResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    put:
      summary: Update App Service Admin User
      description: |
        Updates the Admin User's access to App Endpoints on the specified App Service.
        The update operation can either grant access to all App Endpoints or to specific App Endpoints by listing them in the ```endpoints``` field.

        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:
        - App Services
      operationId: UpdateAppServiceAdminUser
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/UpdateAppServiceAdminUserEndpointList'
                - $ref: '#/components/schemas/UpdateAppServiceAdminUserAllEndpointsRequest'
            examples:
              UpdateAdminUserSpecificEndpoints:
                value:
                  endpoints:
                    - endpoint1
                    - endpoint2
              UpdateAdminUserAllEndpoints:
                value:
                  accessAllEndpoints: true
      responses:
        '204':
          description: Successfully updated the App Service Admin User.
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    delete:
      summary: Delete App Service Admin User
      description: |
        Deletes the Admin User.

        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:
        - App Services
      operationId: DeleteAppServiceAdminUser
      responses:
        '202':
          description: Successfully deleted the App Service Admin User.
        '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: Get App Service Admin User
      description: |
        Fetches the Admin User.

        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:
        - App Services
      operationId: getAppServiceAdminUser
      responses:
        '200':
          description: Successfully fetched the App Service Admin User.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppServiceAdminUser'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    put:
      summary: Enable or Disable App Service Audit Logging
      description: |
        Enable or disable Audit Logging for an App Service.

        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:
        - App Services Audit Logging
      operationId: putAppServiceAuditLogState
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAppServiceAuditLogRequest'
      responses:
        '204':
          description: App service audit logging enabled/disabled successfully.
        '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'
    get:
      summary: Get App Service Audit Log State
      description: |
        Retrieves the audit logging state for a specific App Service.

        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).
      operationId: getAppServiceAuditLogState
      tags:
        - App Services Audit Logging
      responses:
        '200':
          description: Successful retrieval of audit log settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAppServiceAuditLogRequest'
        '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}/clusters/{clusterId}/appservices/{appServiceId}/logStreaming/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
    post:
      summary: Resume App Service Log Streaming
      description: |
        Re-enables Log Streaming for an App Service that was previously paused.  Log Streaming needs to be
        previously configured for the App Service before it can be paused or resumed.

        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:
        - App Services Log Streaming
      operationId: resumeAppServiceLogStreaming
      responses:
        '202':
          description: Successfully resumed log streaming for the app service.
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    delete:
      summary: Pause App Service Log Streaming
      description: |
        Temporarily disables Log Streaming for an App Service.  Log Streaming needs to be
        previously configured for the App Service before it can be paused or resumed.

        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:
        - App Services Log Streaming
      operationId: pauseAppServiceLogStreaming
      responses:
        '202':
          description: Successfully paused log streaming for the app service.
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    get:
      summary: Get Public Certificate for App Service
      description: |
        The public certificate is a trusted Certificate Authority (CA) signed certificate.
        You can copy or download the endpoint’s SSL public certificate to bundle into your mobile application.
        Pinning your certificate to your App is not recommended as it can increase maintenance overhead and downtime risks.
        For more information, see [here](https://docs.couchbase.com/cloud/app-services/connect/connect-apps-to-endpoint.html#setting-up-the-connection).

        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
         - 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:
        - App Services
      operationId: getAppServiceCertificate
      responses:
        '200':
          description: Successfully fetched the App Service based on the appServiceId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCertificateResponse'
        '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}/appservices/{appServiceId}/appEndpoints:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
    get:
      summary: List App Endpoints
      description: |
        Lists all the App Endpoints under a specific App Service along with their associated configurations such as Access Control function, Import Filter or user defined xattr key.

        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:
        - App Endpoints
      operationId: listAppEndpoints
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/SortDirection'
        - 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**, **offline**, **bucket**.'
          example:
            - name
          required: false
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: Successfully listed all the App Endpoints under a specific App Service.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAppEndpointsResponse'
              examples:
                ListAppEndpointsDefaultColl:
                  value:
                    data:
                      bucket: bucket1
                      name: defaultAppEndpoint
                      userXattrKey: key
                      disablePublicAllDocs: false
                      deltaSyncEnabled: true
                      oidc:
                        - issuer: https://example.auth.com
                          register: true
                          clientId: foo_client
                          userPrefix: fooOIDC
                          discoveryUrl: https://foo.com/.well-known/openid-configuration
                          usernameClaim: fooAlt
                          rolesClaim: roles
                          providerId: ffffffff-aaaa-1414-eeee-000000000000
                          isDefault: true
                        - issuer: https://example.auth.com
                          register: true
                          clientId: bar_client
                          userPrefix: barOIDC
                          discoveryUrl: https://bar.com/.well-known/openid-configuration
                          usernameClaim: barAlt
                          providerId: ffffffff-aaaa-1414-eeee-000000000000
                          isDefault: false
                      cors:
                        origin:
                          - http://example.com
                          - http://staging.example.com
                        loginOrigin:
                          - http://example.com
                        headers:
                          - Content-Type
                          - X-Forwarded-Host
                        disabled: false
                        maxAge: 120
                      scopes:
                        _default:
                          collections:
                            _default:
                              accessControlFunction: function(doc){channel(doc.channels);}
                              importFilter: function(doc) { if (doc.type != 'mobile') { return false; } return true; }
                      requireResync:
                        _default:
                          items: []
                      adminURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4985
                      metricsURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4986
                      publicURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4984
                    cursor:
                      hrefs: {}
                      pages:
                        last: 1
                        page: 1
                        perPage: 5
                        totalItems: 5
                ListAppEndpointNamedColl:
                  value:
                    data:
                      bucket: bucket1
                      name: defaultAppEndpoint
                      userXattrKey: key
                      disablePublicAllDocs: false
                      deltaSyncEnabled: true
                      oidc:
                        - issuer: https://example.auth.com
                          register: true
                          clientId: foo_client
                          userPrefix: fooOIDC
                          discoveryUrl: https://foo.com/.well-known/openid-configuration
                          usernameClaim: fooAlt
                          rolesClaim: roles
                          providerId: ffffffff-aaaa-1414-eeee-000000000000
                          isDefault: true
                        - issuer: https://example.auth.com
                          register: true
                          clientId: bar_client
                          userPrefix: barOIDC
                          discoveryUrl: https://bar.com/.well-known/openid-configuration
                          usernameClaim: barAlt
                          providerId: ffffffff-aaaa-1414-eeee-000000000000
                          isDefault: false
                      cors:
                        origin:
                          - http://example.com
                          - http://staging.example.com
                        loginOrigin:
                          - http://example.com
                        headers:
                          - Content-Type
                        disabled: false
                        maxAge: 60
                      scopes:
                        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);}
                      requireResync:
                        _default:
                          items: []
                      adminURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4985
                      metricsURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4986
                      publicURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4984
                    cursor:
                      hrefs: {}
                      pages:
                        last: 1
                        page: 1
                        perPage: 5
                        totalItems: 5
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    post:
      summary: Create App Endpoint
      description: |
        Creates an App Endpoint within an App Service with specific configurations such as collection level Access Control function and Import Filter.
        If the scopes property is not included in the request body, the default scope and collection will be used.
        The first OpenID Connect provider given will be set as the default provider for the App Endpoint. To change the default, please use the Change App Endpoint OIDC Default Provider endpoint.

        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:
        - App Endpoints
      operationId: postAppEndpoint
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAppEndpointRequest'
            examples:
              CreateAppEndpointRequestDefaultCollection:
                value:
                  bucket: bucket1
                  name: defaultAppEndpoint
                  userXattrKey: key
                  disablePublicAllDocs: false
                  deltaSyncEnabled: true
                  scopes:
                    _default:
                      collections:
                        _default:
                          accessControlFunction: function(doc){channel(doc.channels);}
                          importFilter: function(doc) { if (doc.type != 'mobile') { return false; } return true; }
                  cors:
                    origin:
                      - http://example.com
                      - http://staging.example.com
                    loginOrigin:
                      - http://example.com
                    headers:
                      - Content-Type
                    disabled: true
                  oidc:
                    - issuer: https://example.auth.com
                      register: true
                      clientId: foo_client
                      userPrefix: fooOIDC
                      discoveryUrl: https://foo.com/.well-known/openid-configuration
                      usernameClaim: fooAlt
                      rolesClaim: roles
                      scope:
                        - openid
                        - profile
                        - email
                    - issuer: https://example.auth.com
                      register: true
                      clientId: bar_client
                      userPrefix: barOIDC
                      discoveryUrl: https://bar.com/.well-known/openid-configuration
                      usernameClaim: barAlt
              CreateAppEndpointRequestNamedCollections:
                value:
                  bucket: bucket1
                  name: storeAppEndpoint
                  deltaSyncEnabled: false
                  userXattrKey: key
                  disablePublicAllDocs: false
                  scopes:
                    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);}
                  cors:
                    origin:
                      - http://example.com
                      - http://staging.example.com
                    loginOrigin:
                      - http://example.com
                    headers:
                      - Content-Type
                    disabled: true
                  oidc:
                    - issuer: https://example.auth.com
                      register: true
                      clientId: bar_client
                      userPrefix: barOIDC
                      discoveryUrl: https://bar.com/.well-known/openid-configuration
                      usernameClaim: barAlt
      responses:
        '201':
          description: Successfully created an App Endpoint.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    get:
      summary: Get App Endpoint
      description: |
        Fetches the details of the given App Endpoint, including operational and resync states and various configurations such as Access Control function and Import Filter.

        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
         - 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:
        - App Endpoints
      operationId: getAppEndpoint
      responses:
        '200':
          description: Successfully fetched the App Endpoint based on the App Endpoint name.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAppEndpointResponse'
              examples:
                GetAppEndpointDefaultCollection:
                  value:
                    bucket: bucket1
                    name: defaultAppEndpoint
                    userXattrKey: key
                    disablePublicAllDocs: false
                    deltaSyncEnabled: true
                    oidc:
                      - issuer: https://example.auth.com
                        register: true
                        clientId: foo_client
                        userPrefix: fooOIDC
                        discoveryUrl: https://foo.com/.well-known/openid-configuration
                        usernameClaim: fooAlt
                        rolesClaim: roles
                        providerId: ffffffff-aaaa-1414-eeee-000000000000
                        isDefault: true
                    cors:
                      origin:
                        - http://example.com
                        - http://staging.example.com
                      loginOrigin:
                        - http://example.com
                      headers:
                        - Content-Type
                      maxAge: 600
                      disabled: false
                    scopes:
                      _default:
                        collections:
                          _default:
                            accessControlFunction: function(doc){channel(doc.channels);}
                            importFilter: function(doc) { if (doc.type != 'mobile') { return false; } return true; }
                    requireResync:
                      _default:
                        items: []
                    adminURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4985
                    metricsURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4986
                    publicURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4984
                GetAppEndpointNamedCollection:
                  value:
                    bucket: bucket1
                    name: defaultAppEndpoint
                    userXattrKey: key
                    disablePublicAllDocs: false
                    deltaSyncEnabled: true
                    oidc:
                      - issuer: https://example.auth.com
                        register: true
                        clientId: foo_client
                        userPrefix: fooOIDC
                        discoveryUrl: https://foo.com/.well-known/openid-configuration
                        usernameClaim: fooAlt
                        rolesClaim: roles
                        providerId: ffffffff-aaaa-1414-eeee-000000000000
                        isDefault: true
                    cors:
                      origin:
                        - http://example.com
                        - http://staging.example.com
                      loginOrigin:
                        - http://example.com
                      headers:
                        - Content-Type
                      disabled: true
                    scopes:
                      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);}
                    requireResync:
                      scope_1:
                        items: []
                    adminURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4985
                    metricsURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4986
                    publicURL: https://wdltntbkyuqpaaco.apps.sandbox.project1.com:4984
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    put:
      summary: Update App Endpoint
      description: |
        Replaces a specified App Endpoint’s configurations such as Access Control function, Import Filter, Delta Sync, or user defined xattr key.
        The first OpenID Connect provider given will be set as the default provider for the App Endpoint. To change the default, please use the Change App Endpoint OIDC Default Provider endpoint.
        All fields are required, the App Endpoint and bucket names cannot be changed.

        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:
        - App Endpoints
      operationId: putAppEndpoint
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAppEndpointRequest'
      responses:
        '204':
          description: Successfully updated the App Endpoint metadata.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    delete:
      summary: Delete App Endpoint
      description: |
        Deletes an existing App Endpoint given its name.

        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:
        - App Endpoints
      operationId: deleteAppEndpoint
      responses:
        '202':
          description: Successfully deleted the App Endpoint by its App Endpoint name.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    get:
      summary: List App Endpoint Collections
      description: |
        Lists all the collections under a specific App Endpoint along with their associated configurations such as Access Control function, Import Filter or user defined xattr key.

        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:
        - App Endpoints
      operationId: listAppEndpointCollections
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed all the collections under a specific App Endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScopesConfig'
              examples:
                ListAppEndpointCollectionsDefaultColl:
                  value:
                    scopes:
                      _default:
                        collections:
                          _default:
                            accessControlFunction: function(doc){channel(doc.channels);}
                            importFilter: function(doc) { if (doc.type != 'mobile') { return false; } return true; }
                ListAppEndpointCollectionsNamedColl:
                  value:
                    scopes:
                      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; }
                ListAppEndpointCollectionsDefaultNamedColl:
                  value:
                    scopes:
                      scope_1:
                        collections:
                          _default:
                            accessControlFunction: function(doc){channel(doc.channels);}
                            importFilter: function(doc) { if (doc.type != 'mobile') { return false; } return true; }
                          collection_2:
                            accessControlFunction: function(doc){channel("footer);}
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    post:
      summary: Resume or Bring an App Endpoint online
      description: |
        Brings an App Endpoint online to close and reopen the connection to the backing Cluster bucket,
        re-establish access from the Public REST API and accept all incoming Admin API requests.

        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:
        - App Endpoints
      operationId: postAppEndpointActivationStatus
      responses:
        '202':
          description: Accepted request to resume App Endpoint.
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    delete:
      summary: Pause or Take an App Endpoint offline
      description: |
        Take the database offline to run resync or to make changes without disrupting current App Endpoint operations.
        Clients currently connected to the App Endpoint will not be able to sync data with the Cluster while the App Endpoint is paused.
        This will not take the backing Cluster bucket offline.
        Pausing an App Endpoint that is in the progress of coming online will pause the App Endpoint after it comes online.

        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:
        - App Endpoints
      operationId: deleteAppEndpointActivationStatus
      responses:
        '202':
          description: Accepted request to pause App Endpoint.
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    get:
      summary: Get the App Endpoint Cross-Origin Resource Sharing (CORS) Configuration.
      description: |
        Fetch the App Endpoint Cross-Origin Resource Sharing (CORS) Configuration.
        CORS is disabled by default. For more information
        See [Cross-Origin Resource Sharing (CORS) on App Endpoints.](https://docs.couchbase.com/cloud/app-services/deployment/cors-configuration-for-app-services.html)

        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
         - 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:
        - App Endpoints
      operationId: getAppEndpointCORS
      responses:
        '200':
          description: Successfully fetched the App Endpoint CORS config.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CORSConfig'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
    put:
      summary: Upsert the App Endpoint Cross-Origin Resource Sharing (CORS) Configuration.
      description: |
        Upsert the App Endpoint Cross-Origin Resource Sharing (CORS) Configuration.
        CORS is disabled by default. For more information
        See [Cross-Origin Resource Sharing (CORS) on App Endpoints.](https://docs.couchbase.com/cloud/app-services/deployment/cors-configuration-for-app-services.html)

        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
         - 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:
        - App Endpoints
      operationId: putAppEndpointCORS
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CORSConfig'
      responses:
        '204':
          description: Succesfully upserted App Endpoint CORS config.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /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'
    get:
      summary: List App Endpoint Admin Users
      description: |
        Lists the Admin Users that have access to the specified App Endpoint.

        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:
        - App Services
      operationId: ListAppEndpointAdminUsers
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed the Admin Users for the specified App Endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAdminUsersResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    get:
      summary: List App Endpoint Audit Log Event IDs
      description: |
        Retrieves all audit log event ids, their descriptions and enabled status for an App Endpoint.
        The list of filterable event IDs can be specified while configuring audit logging for the App Service.

        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:
        - App Services Audit Logging
      operationId: getAppServiceAuditLogEvents
      responses:
        '200':
          description: Successful retrieval of audit log events
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditLogEventsResponse'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    put:
      summary: Update App Endpoint Audit Logging Config
      description: |
        Updates the audit logging configuration for a specific App Endpoint. Operations performed by disabled users and roles are excluded from audit logs.
        See a list of event IDs by calling /auditLogEvents, add event IDs to the enabledEventIds field to enable audit logging for those events.

        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:
        - App Services Audit Logging
      operationId: putAppEndpointAuditLogConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetAppEndpointAuditLogResponse'
      responses:
        '204':
          description: Successful update of audit logging configuration
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    get:
      summary: Get App Endpoint Audit Logging Config
      description: |
        Retrieves the audit logging configuration for a specific App Endpoint.

        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:
        - App Services Audit Logging
      operationId: getAppEndpointAuditLogConfig
      responses:
        '200':
          description: Successful retrieval of audit logging configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAppEndpointAuditLogResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    post:
      summary: Configure App Service Log Streaming
      description: |
        Sets up log streaming for a specific App Service.

        Ensure you have provided collector credentials if you wish to begin streaming; log streaming cannot be enabled without credentials.
        Refer to schema below to see required fields for your log collection provider.
        Supported providers include Datadog, Sumo Logic, Grafana Loki, Elasticsearch (versions 8 and newer only), generic HTTP, Splunk, and Dynatrace.

        Log streaming can only be configured while the config state is either enabled, paused, or disabled.

        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:
        - App Services Log Streaming
      operationId: postAppServiceLogStreaming
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostLogStreamingRequest'
      responses:
        '202':
          description: Successful configuration of log streaming
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    get:
      summary: Get App Service Log Streaming Configuration and State
      description: |
        Retrieves the configured output type, current config state, current streaming state of log streaming for a specific App Service.

        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:
        - App Services Log Streaming
      operationId: getAppServiceLogStreaming
      responses:
        '200':
          description: Successful retrieval of log streaming configuration and state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLogStreamingResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    delete:
      summary: Disable App Service Log Streaming
      description: |
        Disables log streaming for a specific App Service.

        This will remove the log streaming configuration for the App Service. To enable log streaming again, you will need to provide the configuration details once more using the "Configure App Service Log Streaming" endpoint.

        Log streaming can only be disabled while the config state is either enabled or paused.

        It may take a few minutes for the log streaming to be fully disabled.

        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:
        - App Services Log Streaming
      operationId: deleteAppServiceLogStreaming
      responses:
        '202':
          description: Log streaming disabled
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    put:
      summary: Update App Endpoint Log Streaming Config
      description: |
        Updates the log streaming config for an app endpoint, which configures log levels and keys used to filter log messages.

        This app endpoint log streaming config can only be updated while the log streaming config state is either "paused" or "enabled".

        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:
        - App Services Log Streaming
      operationId: putAppEndpointLogStreamingConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsoleLoggingConfig'
      responses:
        '204':
          description: Successful update of the app endpoint log streaming configuration
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
    get:
      summary: Get App Endpoint Log Streaming Config
      description: |
        Retrieves log streaming config for an app endpoint, which shows log levels and keys used to filter log messages.

        This app endpoint log streaming config can only be retrieved while the log streaming config state is either "paused" or "enabled".

        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:
        - App Services Log Streaming
      operationId: getAppEndpointLogStreamingConfig
      responses:
        '200':
          description: Successful retrieval of the app endpoint log streaming configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsoleLoggingConfig'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /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'
    get:
      summary: Get Access Control and Validation function
      description: |
        Retrieves the Access Control and Validation function for the given keyspace.

        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:
        - App Endpoints
      operationId: getAccessFunction
      responses:
        '200':
          description: Successfully retrieved the Access control and validation function.
          content:
            application/javascript:
              schema:
                $ref: '#/components/schemas/AccessFunction'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    put:
      summary: Upsert custom Access Control and Validation function
      description: |
        Used to upsert a custom Access Control and Validation function for the given keyspace.
        This is a Javascript function specified at a keyspace, where a user’s read/write access is defined for documents in that particular keyspace.
        Every document mutation is processed by this function. If an Access Control function is not explicitly defined, a default is applied.
        [Read more.](https://docs.couchbase.com/cloud/app-services/deployment/access-control-data-validation.html?)

        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:
        - App Endpoints
      operationId: putAccessFunction
      requestBody:
        content:
          application/javascript:
            schema:
              $ref: '#/components/schemas/AccessFunction'
      responses:
        '204':
          description: Successfully upserted the Access control and validation function .
        '400':
          $ref: '#/components/responses/BadRequest'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    delete:
      summary: Delete Access Control and Validation function
      description: |
        Deletes the Access Control and Validation function for the given keyspace.

        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:
        - App Endpoints
      operationId: deleteAccessFunction
      responses:
        '202':
          description: Successfully deleted the Access control and validation function.
        '400':
          $ref: '#/components/responses/BadRequest'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    get:
      summary: Get Import Filter
      description: |
        Retrieves the Import Filter for the given keyspace.

        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:
        - App Endpoints
      operationId: getImportFilter
      responses:
        '200':
          description: Successfully retrieved the Import Filter.
          content:
            application/javascript:
              schema:
                $ref: '#/components/schemas/ImportFilter'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    put:
      summary: Upsert Import Filter
      description: |
        Upserts the Import Filter for the given keyspace. By default, there is no import filter and all documents are imported.
        Import Filters identify the subset of documents eligible to be replicated by App services based on user-defined requirements.
        This subset is applied to all future mutations.
        Once the document has been imported and processed by the App Endpoint, changing the Import Filter will not remove it,
        even if the updated import filters would prevent newer mutations or iterations of the document from getting imported.
        [Read more.](https://docs.couchbase.com/cloud/app-services/deployment/import-filters.html)

        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:
        - App Endpoints
      operationId: putImportFilter
      requestBody:
        content:
          application/javascript:
            schema:
              $ref: '#/components/schemas/ImportFilter'
      responses:
        '204':
          description: Successfully upserted the Import Filter .
        '400':
          $ref: '#/components/responses/BadRequest'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
    delete:
      summary: Delete Import Filter
      description: |
        Deletes the Import Filter for the given keyspace.

        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:
        - App Endpoints
      operationId: deleteImportFilter
      responses:
        '202':
          description: Successfully deleted the Import Filter.
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
  /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'
    post:
      summary: Create App Endpoint OpenID Connect (OIDC) Provider
      description: |
        Creates an OIDC provider for the specified App Endpoint.
        The first OIDC provider will automatically be set as the default OIDC provider.
        All client requests will use the default OIDC provider, unless the OIDC provider for the request is explicitly specified on authentication.
        See more [here](https://docs.couchbase.com/cloud/app-services/user-management/set-up-authentication-provider.html#oidc-authorization-step-by-step).


        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:
        - App Endpoints
      operationId: createAppEndpointOIDCProvider
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOIDCProviderRequest'
      responses:
        '201':
          description: Successfully created OIDC Provider.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OIDCProviderID'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
    get:
      summary: List App Endpoint OpenID Connect (OIDC) Providers
      description: |
        List OpenID Connect (OIDC) Providers configured on an App Endpoint.

        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:
        - App Endpoints
      operationId: listAppEndpointOIDCProviders
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully fetched OIDC Providers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOIDCProvidersResponse'
              examples:
                ListOIDCProvidersExample:
                  value:
                    data:
                      - issuer: https://example.auth.com
                        register: true
                        clientId: foo_client
                        userPrefix: fooOIDC
                        discoveryUrl: https://foo.com/.well-known/openid-configuration
                        usernameClaim: fooAlt
                        rolesClaim: roles
                        providerId: ffffffff-aaaa-1414-eeee-000000000000
                        isDefault: true
                      - issuer: https://example.auth.com
                        register: true
                        clientId: bar_client
                        userPrefix: barOIDC
                        discoveryUrl: https://bar.com/.well-known/openid-configuration
                        usernameClaim: barAlt
                        providerId: ffffffff-aaaa-1414-eeee-000000000000
                        isDefault: false
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /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'
    get:
      summary: Get App Endpoint OpenID Connect (OIDC) Provider
      description: |
        Fetches an OIDC provider by ID for the specified App Endpoint.

        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
         - 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:
        - App Endpoints
      operationId: getAppEndpointOIDCProvider
      responses:
        '200':
          description: Successfully fetched the OIDC Provider.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OIDCProvider'
              examples:
                GetOIDCProviderResponse:
                  value:
                    issuer: foo
                    register: true
                    clientId: foo_client
                    userPrefix: fooOIDC
                    discoveryUrl: https://foo.com/.well-known/openid-configuration
                    usernameClaim: fooAlt
                    isDefault: true
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
    put:
      summary: Update App Endpoint OpenID Connect (OIDC) Provider
      description: |
        Updates an OIDC provider for the specified App Endpoint.

        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:
        - App Endpoints
      operationId: updateAppEndpointOIDCProvider
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOIDCProviderRequest'
      responses:
        '204':
          description: Successfully updated the App Endpoint OIDC provider based on the OIDCProviderId.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
    delete:
      summary: Delete App Endpoint OpenID Connect (OIDC) Provider
      description: |
        Deletes an OIDC provider for the specified App Endpoint. Deleting the default provider will error unless it is the only provider.
        Before deleting the default provider, you must set a new provider as default or have no other providers.

        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:
        - App Endpoints
      operationId: deleteAppEndpointOIDCProvider
      responses:
        '202':
          description: Successfully deleted the OIDC Provider.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /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'
    put:
      summary: Update App Endpoint Default OIDC Provider
      description: |
        Updates the default OIDC provider for the specified App Endpoint.
        All client requests will use the default OIDC provider, unless the OIDC provider for the request is explicitly specified.
        See more [here](https://docs.couchbase.com/cloud/app-services/user-management/set-up-authentication-provider.html#oidc-authorization-step-by-step).

        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:
        - App Endpoints
      operationId: updateAppEndpointOIDCDefaultProvider
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OIDCProviderID'
      responses:
        '204':
          description: Successfully updated the default OIDC provider.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /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'
    get:
      summary: Get Resync Status
      description: |
        Fetches the Resync status of the given App Endpoint. If no resync operation was triggered, the response will say the status is completed
        with 0 values for other properties.

        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
         - 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:
        - App Endpoints
      operationId: getAppEndpointResync
      responses:
        '200':
          description: Successfully fetched the App Endpoint Resync status based on the App Endpoint name.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResyncStatus'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
    post:
      summary: Start Resync
      description: |
        Initialises the Resync operation for the given collections.
        By default, all collections that require resync will be resynced unless they are specified in the scopes property, in which case only
        the specified collections that require resync will be resynced.

        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
         - 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:
        - App Endpoints
      operationId: postAppEndpointResync
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResyncRequest'
      responses:
        '202':
          description: The request to start the resync operation has been accepted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
    delete:
      summary: Stop Resync
      description: |
        Stops the Resync operation. When stopping resync, it will be stopped for all collections being processed.
        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
         - 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:
        - App Endpoints
      operationId: deleteAppEndpointResync
      responses:
        '202':
          description: The request to stop the resync operation has been accepted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AppEndpointAccessForbidden'
        '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'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
  /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'
    put:
      summary: Configure App Service Audit Log Streaming
      description: |
        Sets up audit log streaming for a specific App Service with filters. If streamingEnabled is true log streaming will begin.

        Ensure you have provided collector credentials if you wish to begin streaming; log streaming cannot be enabled without credentials.
        Refer to schema below to see required fields for your log collection provider.
        Providers include Datadog, Sumo Logic, Grafana Loki, Elasticsearch (versions 8 and newer only) and generic HTTP.
        To start or resume streaming, set streamingEnabled to true while providing the rest of the log collector config.

        To disable log streaming and remove the log streaming config including credentials, set streamingEnabled to false and leave the rest of the payload empty.

        To pause log streaming, set streamingEnabled to false while providing the rest of the log collector config.

        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:
        - App Services Audit Logging
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutAuditLogStreamingRequest'
      operationId: putAppServiceAuditLogStreaming
      responses:
        '202':
          description: Successful Setup of Audit Log Streaming
        '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'
    patch:
      summary: Start or Resume Audit Log Streaming
      description: |
        To start or resume streaming, set streamingEnabled to true. To pause log streaming, set streamingEnabled to false.

        If log streaming is paused we will retain the collector credentials. To clear these use the PUT request.

        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:
        - App Services Audit Logging
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchAuditLogStreamingRequest'
      operationId: patchAppServiceAuditLogStreaming
      responses:
        '202':
          description: Successfully patched Audit Log Streaming config.
        '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'
    get:
      summary: Get App Service Audit Log Streaming State
      description: |
        Retrieves the current state of audit log streaming for a specific App Service, as well as the output type and enabled App endpoints.

        The audit log streaming states are:
          - disabled
          - disabling
          - enabled
          - enabling
          - paused
          - pausing
          - errored

        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:
        - App Services Audit Logging
      operationId: getAppServiceAuditLogStreaming
      responses:
        '200':
          description: Successful retrieval of audit log streaming state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAuditLogStreamingResponse'
        '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}/clusters/{clusterId}/appservices/{appServiceId}/auditLogExports:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
    post:
      summary: Initiate Audit Log Export
      description: |
        Initiates an audit log export for a specific App Service.

        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:
        - App Services Audit Logging
      operationId: postAppServiceAuditLogExport
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateClusterAuditLogExportRequest'
            examples:
              PostClusterCreateAuditLogExport:
                $ref: '#/paths/~1v4~1organizations~1{organizationId}~1projects~1{projectId}~1clusters~1{clusterId}~1auditLogExports/post/requestBody/content/application~1json/examples/PostClusterCreateAuditLogExport'
      responses:
        '202':
          description: Successfully created audit export job for the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateClusterAuditLogExportResponse'
        '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'
    get:
      summary: List Audit Log Export Jobs
      description: |
        Retrieves a list of all audit log export jobs for an App Service.

        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).
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/SortDirection'
      tags:
        - App Services Audit Logging
      operationId: listAppServiceAuditLogExports
      responses:
        '200':
          description: Successfully retrieved list of audit export documents
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAuditExportDocs'
        '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}/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'
    get:
      summary: Get Audit Log Export Job
      description: |
        Retrieves details of a specific audit log export job for a given App Service.

         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:
        - App Services Audit Logging
      operationId: getAppServiceAuditLogExportById
      responses:
        '200':
          description: Successfully retrieved details of audit export job
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAuditExportDocResponse'
        '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}/clusters/{clusterId}/appservices/{appServiceId}/privateEndpointService:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
    post:
      summary: Enable App Service Private Endpoints
      description: |
        Enable Private Endpoints for an App Service.

        Supporting infrastructure is deployed and it may take a few minutes for Private Endpoints to be available. Once
        enabled, you can create Private Endpoints in your network. You can do this using the cloud provider's CLI. To obtain
        the command use the /privateEndpointService/privateEndpointCommand endpoint.

        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:
        - App Services Private Endpoints
      operationId: postAppServicePrivateEndpoints
      responses:
        '202':
          description: App Service Private Endpoints enabled successfully.
        '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 App Service Private Endpoints State
      description: |
        The App Service Private Endpoint service allows you to access your Capella cluster from your private network,
        using Private Endpoints.

        This endpoint determines if the endpoint service is enabled or disabled for your App Service.

        It returns both a state and targetState. The state indicates the current status of the service, while the
        targetState indicates the desired end state of the service.

        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).
      operationId: getAppServicePrivateEndpoints
      tags:
        - App Services Private Endpoints
      responses:
        '200':
          description: Successful retrieval of Private Endpoints state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAppServicePrivateEndpointStateResponse'
        '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 App Service Private Endpoints
      description: |
        Disable Private Endpoints for an App Service.

        Supporting infrastructure is removed and it may take a few minutes before the Private Endpoint service 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
         - Project Manager

         To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - App Services Private Endpoints
      operationId: deleteAppServicePrivateEndpoints
      responses:
        '202':
          description: App Service Private Endpoints disabled successfully.
        '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}/appservices/{appServiceId}/privateEndpointService/privateEndpointCommand:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
    post:
      summary: Get App Service Private Endpoints Command
      description: |
        Retrieves the Private Endpoints command in order to create Private Endpoints and initiate the connection between the
        specified VPC and the App Service.

        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:
        - App Services Private Endpoints
      operationId: getAppServicePrivateEndpointsCommand
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateVPCEndpointCommandRequest'
            examples:
              PostAWSCommandRequest:
                $ref: '#/paths/~1v4~1organizations~1{organizationId}~1projects~1{projectId}~1clusters~1{clusterId}~1dataAPI~1privateEndpointCommand/post/requestBody/content/application~1json/examples/PostAWSCommandRequest'
      responses:
        '200':
          description: Successfully returned commands to establish a private connection to the App Service.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePrivateEndpointCommandResponse'
        '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}/appservices/{appServiceId}/privateEndpointService/endpoints:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/AppServiceId'
    get:
      summary: List App Service Private Endpoints
      description: |
        Returns a list of the Private Endpoints associated with your Capella App Service with its current state. Each of
        these Private Endpoints is either attempting to connect or is connected to the App Service network.

        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:
        - App Services Private Endpoints
      operationId: listAppServicePrivateEndpoints
      responses:
        '200':
          description: Successfully retrieved list of App Service Private Endpoints.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPrivateEndpointsResponse'
        '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}/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'
    post:
      summary: Accept Private Endpoint Request
      description: |
        Accepts a Private Endpoint connection request for an App Service. This completes the connection and means the
        Private Endpoint is now associated with the App Service and available for use.

        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:
        - App Services Private Endpoints
      operationId: acceptPrivateEndpointRequest
      responses:
        '204':
          description: Successfully accepted Private Endpoint connection request.
        '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: Delete Private Endpoint Request
      description: |
        If the Private Endpoint is already connected and accepted this will unassociate the Private Endpoint from the App Service.
        If the Private Endpoint is not already connected this will reject the Private Endpoint connection request.

        Both cases will remove the Private Endpoint from the App Service and it will no longer be available for use and any
        connection will be terminated.

        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:
        - App Services Private Endpoints
      operationId: deletePrivateEndpointRequest
      responses:
        '204':
          description: Successfully deleted private endpoint.
        '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}/users/{userId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/UserId'
    get:
      summary: Get Database Credentials
      description: |
        Fetches the details of a given cluster's database credential information.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Database Credentials
      operationId: getDatabaseCredential
      responses:
        '200':
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          description: Successfully fetched the cluster's database credential information based on the userId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDatabaseCredentialResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Update Database Credentials
      description: |
        Updates an existing database credential.

        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:
        - Database Credentials
      operationId: putDatabaseCredential
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDatabaseCredentialRequest'
            examples:
              UpdateDatabaseCredentials:
                value:
                  access:
                    - privileges:
                        - data_reader
                        - data_writer
                      resources:
                        buckets:
                          - name: travel-sample
                            scopes:
                              - name: inventory
                                collections:
                                  - airport
                                  - airline
                                  - tickets
      responses:
        '204':
          description: Successfully updated the access in the cluster's database credential.
        '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: Delete Database Credentials
      description: |
        Deletes an existing cluster's database credential.

        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:
        - Database Credentials
      operationId: deleteDatabaseCredential
      responses:
        '204':
          description: Successfully deleted the cluster's database access record by its userId.
        '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}/buckets/freeTier:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Create Free Tier Bucket
      description: |
        Creates a new free tier bucket.  This is a Couchbase bucket where only the name a memory quota is configurable.
        Other bucket properties use default values.  

        The following features are not available for free tier buckets:
          - bucket flush 
          - migrate to another storage engine like magma

        Note that you can only create a free tier bucket on a free tier cluster.

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Free Tier
      operationId: createFreeTierBucket
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFreeTierBucketRequest'
            examples:
              PostFreeTierBucket:
                value:
                  name: A-Free-Tier-Bucket
                  memoryAllocationInMb: 200
      responses:
        '201':
          description: Successfully created a free tier bucket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBucketResponse'
        '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 Free Tier Buckets
      description: |
        Lists all buckets in the free tier cluster. While only name and memory quota are configurable for free tier buckets, the response will show
        additional read only bucket properties such as replicas, etc.

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Free Tier
      operationId: listFreeTierBuckets
      responses:
        '200':
          description: Successfully listed all the buckets in the free tier cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBucketsResponse'
        '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}/buckets:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Create Bucket
      description: |
        Creates a new bucket configuration under a cluster.

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Buckets, Scopes, & Collections
      operationId: postBucket
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBucketRequest'
            examples:
              PostBucketTypeCouchbase:
                value:
                  name: CBExample1
                  type: couchbase
                  storageBackend: couchstore
                  memoryAllocationInMb: 105
                  bucketConflictResolution: seqno
                  durabilityLevel: majorityAndPersistActive
                  replicas: 2
                  flush: true
                  timeToLiveInSeconds: 100
              PostBucketTypeEphemeral:
                value:
                  name: EPExample2
                  type: ephemeral
                  memoryAllocationInMb: 105
                  bucketConflictResolution: seqno
                  durabilityLevel: majority
                  replicas: 2
                  flush: true
                  timeToLiveInSeconds: 100
                  evictionPolicy: nruEviction
              PostBucketWithDefaults:
                value:
                  name: test-default-bucket
              PostBucketWithEphemeralDefaults:
                value:
                  name: ephemeral-default
                  type: ephemeral
              PostBucketWithPersistToMajority:
                value:
                  name: test-cb2
                  memoryAllocationInMb: 120
                  bucketConflictResolution: seqno
                  durabilityLevel: persistToMajority
              PostBucketWithEphemeralNoEviction:
                value:
                  name: testEph
                  type: ephemeral
                  evictionPolicy: nruEviction
                  durabilityLevel: majority
                  replicas: 2
                  flush: true
                  timeToLiveInSeconds: 100
              PostBucketWithCouchbaseMagma:
                value:
                  name: testCbMagmadefault
                  type: couchbase
                  storageBackend: magma
              PostBucketWithBucketPriority:
                value:
                  name: testCbBucketPriority
                  priority: 100
              PostBucketWithMagma128:
                value:
                  name: magma-128
                  type: couchbase
                  storageBackend: magma
                  vbuckets: 128
                  memoryAllocationInMb: 128
                  replicas: 2
              PostBucketWithMagma1024:
                value:
                  name: magma-1024
                  type: couchbase
                  storageBackend: magma
                  vbuckets: 1024
                  memoryAllocationInMb: 2048
                  replicas: 2
      responses:
        '201':
          description: Successfully created a bucket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBucketResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: List Buckets
      description: |
        Lists all the buckets under the cluster.

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Buckets, Scopes, & Collections
      operationId: listBuckets
      responses:
        '200':
          description: Successfully listed all the buckets under the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBucketsResponse'
        '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}/buckets/freeTier/{bucketId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
    get:
      summary: Get Free Tier Bucket
      description: |
        Get bucket.  While only name and memory quota are configurable for free tier buckets, the response will show
        additional read only bucket properties such as replicas, etc.

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Free Tier
      operationId: getFreeTierBucketByID
      responses:
        '200':
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          description: Successfully fetched free tier bucket by bucket id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBucketResponse'
        '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 Free Tier Bucket
      description: |
        Updates an existing free tier bucket.  Only bucket memory quota is configurable.  Once created bucket name cannot be changed.

        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:
        - Free Tier
      operationId: updateFreeTierBucket
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFreeTierBucketRequest'
      responses:
        '204':
          description: Successfully accepted updated bucket configuration.
        '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: Delete Free Tier Bucket
      description: |
        Deletes an existing free tier bucket.

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Free Tier
      operationId: deleteFreeTierBucketByID
      responses:
        '204':
          description: Successfully deleted the free tier bucket by its bucket id.
        '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}/clusters/{clusterId}/buckets/{bucketId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
    get:
      summary: Get Bucket
      description: |
        Fetches the configuration of the given bucket.

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Buckets, Scopes, & Collections
      operationId: getBucketByID
      responses:
        '200':
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          description: Successfully fetched the bucket based on the bucketId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBucketResponse'
        '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'
    put:
      summary: Update Bucket
      description: |
        Updates an existing bucket.

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Buckets, Scopes, & Collections
      operationId: putBucket
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBucketRequest'
      responses:
        '204':
          description: Successfully accepted updated bucket configuration.
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete Bucket
      description: |
        Deletes an existing bucket.

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Buckets, Scopes, & Collections
      operationId: deleteBucketByID
      responses:
        '204':
          description: Successfully deleted the bucket by its bucketId.
        '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}/buckets/{bucketId}/flush:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
    put:
      summary: Flush Bucket Data
      description: |
        Flushing of the bucket occurs, causing all items in the bucket to be deleted by the system at the earliest opportunity.
        This operation can only be performed if the bucket has been configured with flushEnabled to true. If it is disabled, 
        it will throw an error.

        It is recommended not to run with the flushEnabled configuration set to true in production; 
        due to the danger of all a bucket's data being inadvertently lost. 

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      operationId: FlushBucket
      tags:
        - Buckets, Scopes, & Collections
      responses:
        '200':
          description: Successfully flushed a bucket.
        '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}/bucketStorageMigration:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    put:
      summary: Migrate Buckets
      description: |
        Updates the storage backend of an existing bucket from Couchstore to Magma.

        The following should be noted while doing this operation -

        1. The outcome of this migration is that all data service nodes in the cluster will be replaced.
        - During the migration all buckets will remain operational and still be able to perform read and writes. Hence applications will not incur any downtime during this migration and can continue to read/write to the cluster.
        - The re-balances that occur from the node replacements will result in the bucket(s) being migrated to Magma.
        - The status of the cluster can be monitored via the [GET cluster API](https://docs.couchbase.com/cloud/management-api-reference/index.html#tag/clusters/operation/getCluster). The cluster will transition to healthy state after migration is completed for all listed buckets.

        2. This operation is only allowed for clusters with server version >= 7.6.0. The storage backend cannot be updated for the cluster with server versions lower than this. All the nodes must be upgraded to 7.6.0 before the bucket migration can be performed.

        3. Before migrating from Couchstore to Magma, the bucket memory allocation should be upgraded to at least the minimum amount required for a Magma bucket that is 1024 MiB.

        4. Cluster must be in a healthy state to perform this operation.

        To learn more about bucket configuration, see [Buckets](https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/buckets.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Clusters
      operationId: putBucketStorageBackend
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBucketStorageBackendRequest'
      responses:
        '202':
          description: Successfully accepted updated storage backend for the bucket.
        '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}/clusters/{clusterId}/privateEndpointService:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: Get Private Endpoint Service Status
      description: |
        Private endpoint service allows you to access your Capella cluster from your private network, using private endpoints.

        This endpoint determines if the endpoint service is enabled or disabled on your cluster, and shows which routes are configured to use private endpoints. The REST route (port 18091) is used by XDCR, so enabling it allows XDCR to use private endpoints.
        The `routes` field is only present when private endpoint service is enabled (`enabled: true`), showing the current state of each route (e.g., `xdcr: true` if enabled, `xdcr: false` if disabled). When private endpoint service is disabled (`enabled: false`), the `routes` field is not included in the response.

        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:
        - Private Endpoint Service
      operationId: getPrivateEndpointServiceStatus
      responses:
        '200':
          description: Successfully retrieved private endpoint status of cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPrivateEndpointServiceStatusResponse'
        '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 Private Endpoint Service
      description: |
        Enable private endpoint service on your cluster.

        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.

        You can optionally enable routes such as REST API (port 18091) to use private endpoints at the time of enablement. Enabling the REST route allows XDCR to use private endpoints since XDCR uses the REST API.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Private Endpoint Service
      operationId: enablePrivateEndpointService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnableAwsPrivateEndpointServiceRequest'
      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'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Update Private Endpoint Service Configuration
      description: |
        Update the configuration of routes to use private endpoints after private endpoint service has been enabled.

        This endpoint allows you to enable or disable private endpoint usage for routes. The REST route (port 18091) is used by XDCR, so enabling it allows XDCR to use private endpoints, while disabling it stops routing XDCR traffic via private endpoints. Setting a route to true routes traffic through private endpoints, while setting it to false stops routing that route's traffic via private endpoints.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Private Endpoint Service
      operationId: updatePrivateEndpointService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAwsPrivateEndpointServiceRequest'
      responses:
        '202':
          description: Successfully submitted request to update private endpoint service configuration.
        '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'
    delete:
      summary: Disable Private Endpoint Service
      description: |
        Disable private endpoint service on your cluster.

        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:
        - Private Endpoint Service
      operationId: disablePrivateEndpointService
      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}/clusters/{clusterId}/privateEndpointService/endpoints:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: List Private Endpoints
      description: |
        Returns a list of private endpoints associated with the endpoint service for your Capella cluster, along
        with the endpoint state.  Each private endpoint connects a private network to the Capella 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 Creator
          - Project Viewer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Private Endpoint Service
      operationId: listPrivateEndpoints
      responses:
        '200':
          description: Successfully retrieved list of private endpoints.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPrivateEndpointsResponse'
        '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}/privateEndpointService/endpointCommand:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Get 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.  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
        ```

        An example for Azure:

        ```
        az network private-endpoint create \
          --connection-name connection-1 \
          --name private-endpoint \
          --private-connection-resource-id svc-1 \
          --resource-group test-rg \
          --subnet subnet-1 \
          --group-id sites \
          --vnet-name vnet-1
        ```

        An example for GCP:

        ```
        #!/bin/bash
        REGION='us-east1'
        NETWORK='psc-test'
        SUBNET='psc-test-1'
        CLUSTER='cluster-id'
        # Do not change
        BASE_DNS_NAME='private-endpoint.random.cloud.couchbase.com'
        SERVICE_ATTACHMENT=''projects/project-id/regions/us-east1/serviceAttachments/psc-id''
        BOOTSTRAP_SERVICE=''projects/project-id/regions/us-east1/serviceAttachments/psc-bootstrap-id''

        NETWORK_SHORT=${NETWORK:0:15}
        CLUSTER_SHORT=${CLUSTER:0:15}

        # Create private DNS zone
        gcloud dns managed-zones create $NETWORK_SHORT-$CLUSTER_SHORT --description="Private Endpoint for Capella cluster" --dns-name=$BASE_DNS_NAME --networks=$NETWORK --visibility=private
        gcloud dns record-sets transaction start --zone=$NETWORK_SHORT-$CLUSTER_SHORT

        # Create attachments and DNS records
        gcloud compute addresses create pe-address-$NETWORK_SHORT-$CLUSTER_SHORT --region=$REGION --subnet=$SUBNET
        IP_ADDRESS=$(gcloud compute addresses list --filter="name=pe-address-$NETWORK_SHORT-$CLUSTER_SHORT AND region:$REGION AND subnetwork:$SUBNET" --format="value(address)")
        gcloud compute forwarding-rules create endpoint-$NETWORK_SHORT-$CLUSTER_SHORT --region=$REGION --network=$NETWORK --address=pe-address-$NETWORK_SHORT-$CLUSTER_SHORT --target-service-attachment=$SERVICE_ATTACHMENT
        gcloud dns record-sets transaction add $IP_ADDRESS --name=pe.$BASE_DNS_NAME --type=A --ttl=300 --zone=$NETWORK_SHORT-$CLUSTER_SHORT

        gcloud compute addresses create pe-address-bootstrap-$NETWORK_SHORT-$CLUSTER_SHORT --region=$REGION --subnet=$SUBNET
        IP_ADDRESS=$(gcloud compute addresses list --filter="name=pe-address-bootstrap-$NETWORK_SHORT-$CLUSTER_SHORT AND region:$REGION AND subnetwork:$SUBNET" --format="value(address)")
        gcloud compute forwarding-rules create endpoint-bootstrap-$NETWORK_SHORT-$CLUSTER_SHORT --region=$REGION --network=$NETWORK --address=pe-address-bootstrap-$NETWORK_SHORT-$CLUSTER_SHORT --target-service-attachment=$BOOTSTRAP_SERVICE
        gcloud dns record-sets transaction add $IP_ADDRESS --name=private-endpoint.$BASE_DNS_NAME --type=A --ttl=300 --zone=$NETWORK_SHORT-$CLUSTER_SHORT

        # Execute transactions
        gcloud dns record-sets transaction execute --zone=$NETWORK_SHORT-$CLUSTER_SHORT
        ```

        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:
        - Private Endpoint Service
      operationId: getPrivateEndpointCommand
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateVPCEndpointCommandRequest'
                - $ref: '#/components/schemas/CreateAzurePrivateEndpointCommandRequest'
                - $ref: '#/components/schemas/CreateGCPPrivateEndpointCommandRequest'
            examples:
              PostAWSCommandRequest:
                $ref: '#/paths/~1v4~1organizations~1{organizationId}~1projects~1{projectId}~1clusters~1{clusterId}~1dataAPI~1privateEndpointCommand/post/requestBody/content/application~1json/examples/PostAWSCommandRequest'
              PostAzureCommandRequest:
                $ref: '#/paths/~1v4~1organizations~1{organizationId}~1projects~1{projectId}~1clusters~1{clusterId}~1dataAPI~1privateEndpointCommand/post/requestBody/content/application~1json/examples/PostAzureCommandRequest'
              PostGCPCommandRequest:
                value:
                  vpcNetworkID: vpcNetwork-1234
                  subnetIDs:
                    - subnet-1234
      responses:
        '200':
          description: Successfully provided command to create a private endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePrivateEndpointCommandResponse'
        '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}/privateEndpointService/endpoints/{endpointId}/associate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/EndpointID'
    post:
      summary: Accept 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.

        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:
        - Private Endpoint Service
      operationId: acceptPrivateEndpoint
      responses:
        '204':
          description: Successfully accepted private endpoint.
        '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}/clusters/{clusterId}/privateEndpointService/endpoints/{endpointId}/unassociate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/EndpointID'
    post:
      summary: Reject or disassociate Private Endpoint
      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.

        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:
        - Private Endpoint Service
      operationId: deletePrivateEndpoint
      responses:
        '204':
          description: Successfully deleted private endpoint.
        '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}:
    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'
    get:
      summary: Get Certificate
      description: |
        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:
        - Certificates
      operationId: getCertificate
      responses:
        '200':
          description: Successfully returned a self-signed certificate.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCertificateResponse'
        '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}/sampleBuckets:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Load Sample Data
      description: |
        Loads predefined sample data into a cluster by selecting from three available options:

        - travel-sample 
        - gamesim-sample
        - beer-sample 

        Upon a successful request, a new bucket is created within the cluster, and populated with the chosen sample data.

        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:
        - Sample Bucket
      operationId: postSampleBucket
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSampleBucket'
      responses:
        '201':
          description: Successfully started sample data load.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSampleBucketResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: List Sample Data Import Buckets
      description: |
        Lists all the sample buckets 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:
        - Sample Bucket
      operationId: listSampleBuckets
      responses:
        '200':
          description: Successfully listed all the sample buckets under the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBucketsResponse'
        '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}/clusters/{clusterId}/sampleBuckets/{bucketId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
    get:
      summary: Get Sample Import Bucket
      description: |
        Fetches the configuration of the given bucket.

        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:
        - Sample Bucket
      operationId: getSampleBucketById
      responses:
        '200':
          description: Successfully fetched the sample bucket based on the bucketId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBucketResponse'
        '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: Delete Sample Import Bucket
      description: |
        Deletes an existing bucket which was loaded with sample data.

        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:
        - Sample Bucket
      operationId: deleteSampleDataByBucketID
      responses:
        '204':
          description: Successfully deleted the bucket by its bucketId.
        '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}/buckets/{bucketId}/backups:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
    post:
      summary: Create Backup
      description: |
        Creates an on-demand backup for a bucket.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.html).

        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:
        - Backups & Restore (Bucket)
      operationId: postBackup
      responses:
        '202':
          description: Successfully created an on-demand backup for a bucket.
        '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}/backups:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: List Cluster Backups
      description: |
        Lists the latest backup for all buckets in a cluster.

        Note: This endpoint doesn’t return queued backups and only returns ones that are actively being processed or are completed/failed.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.html).

        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:
        - Backups & Restore (Bucket)
      operationId: listClusterBackups
      responses:
        '200':
          description: Successfully listed the latest backups for all buckets under the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBackupsResponse'
        '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}/clusters/{clusterId}/backups/{backupId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BackupId'
    get:
      summary: Get Backup
      description: |
        Fetches the details of an existing backup.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.html).

        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:
        - Backups & Restore (Bucket)
      operationId: getBackupByID
      responses:
        '200':
          description: Successfully fetched the backup by its backupId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBackupByIDResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete Backup Cycle
      description: |
        Deletes the backup records that belong to the same cycle from the DB by using the backup ID.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.html).

        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:
        - Backups & Restore (Bucket)
      operationId: deleteBackupCycleByID
      responses:
        '202':
          description: Successfully deleted the backup by its backupId.
        '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}/cloudsnapshotbackups:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Create Cloud Snapshot Backup
      description: |
        Creates a cloud snapshot backup for a cluster.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups & Restore
      operationId: createCloudSnapshotBackup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCloudSnapshotBackupRequest'
      responses:
        '202':
          description: Successfully created a cloud snapshot backup for a cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCloudSnapshotBackupResponse'
              examples:
                createCloudSnapshotBackup:
                  value:
                    backupId: IS9DrRsw4KWFS72Zhbj4xmhllHvPcdCL
        '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: |
        List the backups belonging to a cluster.

        Note: This endpoint doesn’t return queued backups and only returns ones that are actively being processed or are completed/failed.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups & Restore
      operationId: listCloudSnapshotBackups
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/CloudSnapshotBackupsSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed the backups belonging to a cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCloudSnapshotBackupsResponse'
              examples:
                listClusterBackups:
                  value:
                    cursor:
                      hrefs: {}
                      pages:
                        last: 1
                        page: 1
                        perPage: 5
                        totalItems: 5
                    data:
                      - data:
                          clusterId: 49b2c7f7-9612-4c99-b202-d4067b276b89
                          createdAt: '2023-11-25T13:02:32.409980126Z'
                          expiration: '2023-12-25T13:02:32.409980126Z'
                          id: 42bf3a6c-ebd9-495f-a391-57708b8c267d
                          progress:
                            status: complete
                            time: '2024-01-18T10:47:18Z'
                          projectId: 39387120-0a23-41bf-8d53-9048e6080dd1
                          retention: 604800000000000
                          cmek:
                            - id: ffffffff-aaaa-1414-eeee-000000000000
                              providerId: example-arn-1
                          server: 7.2.3
                          size: 127569288
                          tenantId: 10f52cbd-8367-47f8-a840-e692339b4b04
                          type: on_demand
                        permissions:
                          create:
                            accessible: true
                          delete:
                            accessible: true
                          read:
                            accessible: true
                          update:
                            accessible: true
                      - data:
                          clusterId: 49b2c7f7-9612-4c99-b202-d4067b276b89
                          createdAt: '2023-11-25T13:02:32.409980126Z'
                          expiration: '2023-12-25T13:02:32.409980126Z'
                          id: 42bf3a6c-ebd9-495f-a391-57708b8c267d
                          progress:
                            status: pending
                            time: '2024-01-18T10:47:18Z'
                          projectId: 39387120-0a23-41bf-8d53-9048e6080dd1
                          retention: 604800000000000
                          cmek:
                            - id: ffffffff-aaaa-1414-eeee-000000000000
                              providerId: example-arn-1
                            - id: ffffffff-aaaa-1414-eeee-000000000000
                              providerId: example-arn-2
                          crossRegionCopies:
                            - regionCode: us-west-2
                              status: complete
                              time: '2024-01-18T10:48:18Z'
                            - regionCode: ap-southeast-4
                              status: complete
                              time: '2024-01-18T10:49:21Z'
                          server: 7.2.3
                          databaseSize: 127569
                          tenantId: 10f52cbd-8367-47f8-a840-e692339b4b04
                          type: scheduled
                        permissions:
                          create:
                            accessible: true
                          delete:
                            accessible: true
                          read:
                            accessible: true
                          update:
                            accessible: true
                    permissions:
                      create:
                        accessible: true
                      delete:
                        accessible: true
                      read:
                        accessible: true
                      update:
                        accessible: true
        '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}/cloudsnapshotbackups/restores:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: List Cloud Snapshot Restores
      description: |
        Lists the restores that have taken place for a given cluster.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups & Restore
      operationId: listCloudSnapshotRestores
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - 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
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed the cloud snapshot restores belonging to a cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCloudSnapshotRestoresResponse'
              examples:
                listRestores:
                  value:
                    cursor:
                      hrefs: {}
                      pages:
                        last: 1
                        page: 1
                        perPage: 5
                        totalItems: 5
                    data:
                      - data:
                          clusterId: 49b2c7f7-9612-4c99-b202-d4067b276b89
                          createdAt: '2023-11-25T13:02:32.409980126Z'
                          expiration: '2023-12-25T13:02:32.409980126Z'
                          id: 42bf3a6c-ebd9-495f-a391-57708b8c267d
                          progress:
                            status: complete
                            time: '2024-01-18T10:47:18Z'
                          projectId: 39387120-0a23-41bf-8d53-9048e6080dd1
                          retention: 604800000000000
                          server: 7.2.3
                          size: 127569288
                          tenantId: 10f52cbd-8367-47f8-a840-e692339b4b04
                          type: on_demand
                        permissions:
                          create:
                            accessible: true
                          delete:
                            accessible: true
                          read:
                            accessible: true
                          update:
                            accessible: true
                      - data:
                          clusterId: 49b2c7f7-9612-4c99-b202-d4067b276b89
                          createdAt: '2023-11-25T13:02:32.409980126Z'
                          expiration: '2023-12-25T13:02:32.409980126Z'
                          id: 42bf3a6c-ebd9-495f-a391-57708b8c267d
                          progress:
                            status: pending
                            time: '2024-01-18T10:47:18Z'
                          projectId: 39387120-0a23-41bf-8d53-9048e6080dd1
                          retention: 604800000000000
                          server: 7.2.3
                          size: 127569288
                          tenantId: 10f52cbd-8367-47f8-a840-e692339b4b04
                          type: scheduled
                        permissions:
                          create:
                            accessible: true
                          delete:
                            accessible: true
                          read:
                            accessible: true
                          update:
                            accessible: true
                    permissions:
                      create:
                        accessible: true
                      delete:
                        accessible: true
                      read:
                        accessible: true
                      update:
                        accessible: true
        '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}/cloudsnapshotbackups/regions:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      operationId: ListGeographicRegions
      summary: List Available Geographic Regions for Cross-region Operations
      description: |
        Lists the geographic regions where replicas of original backups can be stored,
        to ensure global availability and robust disaster recovery.

        These regions can also be used for cross-region restores between clusters or for deploying new clusters in any
        listed region using backup data from every region included in the response.

        At present, cross-region backups and restores are supported only for AWS and Azure clusters.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups & Restore
      responses:
        '200':
          description: Successfully lists the available geographic regions for cross-region cloud snapshot backups and restores.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloudSnapshotGeographicRegions'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '501':
          $ref: '#/components/responses/NotImplemented'
  /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'
    put:
      summary: Edit Backup Retention
      description: |
        Edits the retention time for a backup.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups & Restore
      operationId: editCloudSnapshotBackupRetention
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditCloudSnapshotBackupRetentionRequest'
      responses:
        '204':
          description: Successfully edited backup retention time.
        '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: |
        Deletes the backup.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups & Restore
      operationId: deleteCloudSnapshotBackup
      responses:
        '202':
          description: Successfully deleted the backup.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '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}/cloudsnapshotbackups/{backupId}/restore:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BackupId'
    post:
      summary: Restore Backup
      description: |
        Creates a restore job for a backup immediately.

        When multiple cross-regional cloud snapshots are available, a region of preference can be specified within the
        request payload to ensure optimal recovery in scenarios where the original snapshot in the cluster’s primary
        region is not restorable. In such cases, cross-regional copies serve as a reliable fallback to maintain data
        availability and minimize downtime. Selecting the geographically closest cross-regional snapshot among the
        available options helps reduce latency during data retrieval and significantly lowers data transfer costs due
        to shorter network paths.

        If no preferred region order is specified, the system automatically selects the most suitable snapshot
        based on availability.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups & Restore
      operationId: restore
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCloudSnapshotRestoreRequest'
      responses:
        '202':
          description: Successfully triggered a restore of a cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCloudSnapshotRestoreResponse'
              examples:
                createCloudSnapshotRestore:
                  value:
                    restoreId: IS9DrRsw4KWFS72Zhbj4xmhllHvPcdCL
        '400':
          $ref: '#/components/responses/BadRequest'
        '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}/cloudsnapshotbackups:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
    get:
      summary: List Cloud Snapshot Backups at the Project Level
      description: |
        Lists cloud snapshot backups associated with operational clusters within a specific project.

        The "most recent" and "oldest" backup fields do not include backups that are in a queued state. Only backups that are actively being processed, successfully completed, or marked as failed are returned.

        For detailed guidance on backup and restore functionality, please refer to [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        The provided API key must have at least one of the following roles.
        - Organization Owner
        - Project Owner
        - Project Manager

        For more information about roles and access, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Cloud Snapshot Backups & Restore
      operationId: listProjectLevelCloudSnapshotBackups
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/ProjectLevelCloudSnapshotBackupsSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successful retrieval of the list of backups associated with the clusters within the project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProjectLevelCloudSnapshotResponse'
        '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}/cloudsnapshotbackups/{backupId}/clone:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/BackupId'
    post:
      summary: Clone Cluster Backup
      description: |
        Clones the cluster backup into a new cluster.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups & Restore
      operationId: clone
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCloudSnapshotCloneRequest'
            examples:
              createCloudSnapshotClone:
                value:
                  name: Cloned Cluster
                  description: This is a cloned cluster.
                  cloudProvider:
                    type: aws
                    region: us-east-1
                    cidr: 10.1.30.0/23
                  availability:
                    type: single
                  zones:
                    - use1-az1
                  support:
                    plan: developer pro
                    timezone: PT
      responses:
        '202':
          description: Successfully triggered a clone of a cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCloudSnapshotCloneResponse'
              examples:
                createCloudSnapshotClone:
                  value:
                    restoreId: IS9DrRsw4KWFS72Zhbj4xmhllHvPcdCL
                    clusterId: IS9DrRsw4KWFS72Zhbj4xmhllHvPcdCL
        '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}/cloudsnapshotbackupschedule:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    put:
      summary: Upsert Backup Schedule
      description: |
        Creates or updates a cloud snapshot backup schedule for a cluster.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups Schedule
      operationId: upsertCloudSnapshotBackupSchedule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertCloudSnapshotBackupScheduleRequest'
      responses:
        '204':
          description: Successfully created or updated a backup schedule.
        '400':
          $ref: '#/components/responses/BadRequest'
        '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'
        '501':
          $ref: '#/components/responses/NotImplemented'
    get:
      summary: Get Backup Schedule
      description: |
        Retrieves the cloud snapshot backup schedule for a cluster.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups Schedule
      operationId: getCloudSnapshotBackupSchedule
      responses:
        '200':
          description: Successfully retrieved the backup schedule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCloudSnapshotBackupScheduleResponse'
        '204':
          description: Cluster does not have a defined backup schedule.
        '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 backup schedule for a cluster.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/cloud-snapshots.html).

        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:
        - Cloud Snapshot Backups Schedule
      operationId: deleteCloudSnapshotBackupSchedule
      responses:
        '204':
          description: Successfully deleted the backup schedule.
        '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}/buckets/{bucketId}/backup/schedules:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
    post:
      summary: Create Backup Schedule
      description: |
        Creates a scheduled backup for a bucket.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Backup Schedule (Bucket)
      operationId: postBackupSchedule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScheduledBackupRequest'
            examples:
              CreateScheduledBackup:
                value:
                  type: weekly
                  weeklySchedule:
                    dayOfWeek: sunday
                    startAt: 10
                    incrementalEvery: 4
                    retentionTime: 90days
                    costOptimizedRetention: false
      responses:
        '202':
          description: Successfully created a scheduled backup for a bucket.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: Get Backup Schedule
      description: |
        Fetched the backup schedule for a bucket in a cluster.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Backup Schedule (Bucket)
      operationId: getBackupSchedule
      responses:
        '200':
          description: Successfully listed all backups for a bucket under the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetScheduledBackupResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Update Backup Schedule
      description: |
        Updates an existing backup schedule.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Backup Schedule (Bucket)
      operationId: putBackupSchedule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScheduledBackupRequest'
      responses:
        '204':
          description: Successfully updated backup schedule.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete Backup Schedule
      description: |
        Deletes an existing backup schedule

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Backup Schedule (Bucket)
      operationId: deleteBackupSchedule
      responses:
        '202':
          description: Successfully deleted the backup schedule.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /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'
    get:
      summary: List Cycles
      description: |
        Lists the cycles for a bucket in a cluster.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.html).

        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:
        - Backup Schedule (Bucket)
      operationId: listCycles
      parameters:
        - $ref: '#/components/parameters/StartDate'
        - $ref: '#/components/parameters/EndDate'
      responses:
        '200':
          description: Successfully listed all cycles for a bucket in the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCyclesResponse'
        '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}/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'
    get:
      summary: List Backups
      description: |
        Lists the backups for a cycle in a bucket.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.html).

        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:
        - Backup Schedule (Bucket)
      operationId: listBackups
      responses:
        '200':
          description: Successfully listed the backups for a cycle in a bucket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListBackupsResponse'
        '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}/backups/{backupId}/restore:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BackupId'
    post:
      summary: Restore Backup
      description: |
        Creates an on-demand restore job for a backup immediately.

        To learn more about backup and restore, see [Backup and Restore Data](https://docs.couchbase.com/cloud/clusters/backup-restore.html).

        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:
        - Backups & Restore (Bucket)
      operationId: postRestore
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOnDemandRestoreRequest'
      responses:
        '202':
          description: Successfully created an on-demand restore for a bucket.
        '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}/buckets/{bucketId}/scopes:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/BucketId'
    post:
      summary: Create Scope
      description: |
        Creates a new scope in a bucket.

        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).

         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:
        - Buckets, Scopes, & Collections
      operationId: postScope
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScopeRequest'
      responses:
        '201':
          description: Successfully created a scope.
        '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 Scopes
      description: |
        Lists all the scopes in the bucket.

        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).

        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:
        - Buckets, Scopes, & Collections
      operationId: getScopes
      responses:
        '200':
          description: Successfully listed all the scopes under the bucket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetScopesResponse'
        '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}/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'
    get:
      summary: Get Scope
      description: |
        Fetches the details of the given 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).

        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:
        - Buckets, Scopes, & Collections
      operationId: getScopeByName
      responses:
        '200':
          description: Successfully fetched the scope by its name.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetScopeResponse'
        '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 Scope
      description: |
        Deletes an existing 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).

        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:
        - Buckets, Scopes, & Collections
      operationId: deleteScopeByName
      responses:
        '204':
          description: Successfully deleted the scope by its name.
        '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}/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'
    post:
      summary: Create Collection
      description: |
        Creates a new collection in a 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).

        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:
        - Buckets, Scopes, & Collections
      operationId: postCollection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCollectionRequest'
      responses:
        '201':
          description: Successfully created a collection.
        '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 Collections
      description: |
        Lists all the collections in a 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).

        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:
        - Buckets, Scopes, & Collections
      operationId: getCollections
      responses:
        '200':
          description: Successfully listed all the collections in a scope in the bucket.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCollectionsResponse'
        '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}/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'
    get:
      summary: Get Collection
      description: |
        Fetches the details of the given 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).

        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:
        - Buckets, Scopes, & Collections
      operationId: getCollectionByName
      responses:
        '200':
          description: Successfully fetched the collection by its name.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCollectionResponse'
        '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 Collection
      description: |
        Updates an existing collection.

        This operation is only allowed for a cluster with server version >= 7.6.0. A collection cannot be updated for the server versions lower than this.

        This allows to update the maxTTL of the given 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).

        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:
        - Buckets, Scopes, & Collections
      operationId: putCollection
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCollectionRequest'
      responses:
        '204':
          description: Successfully accepted updated collection 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'
    delete:
      summary: Delete Collection
      description: |
        Deletes an existing 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).

        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:
        - Buckets, Scopes, & Collections
      operationId: deleteCollectionByName
      responses:
        '204':
          description: Successfully deleted the collection by its name.
        '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:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
  /v4/organizations/{organizationId}/analyticsClusters:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/onOffSchedule:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/allowedcidrs:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
  /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'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/cloudSnapshotBackups:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
  /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'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/cloudSnapshotBackupSchedule:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
  /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'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/cloudSnapshotBackups/restores:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/networkPeers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Create Network Peering
      description: |
        Creates a network peering record for Capella. Capella does not support peering of networks between different cloud providers. For example, you cannot peer GCP VPC that hosts Capella cluster with an AWS VPC hosting an application.

        - Create configures a Couchbase Capella private networking with the cloud provider. Setting up a private network enables your application to interact with Couchbase Capella over a private connection by co-locating them through network peering.

        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:
        - Network Peers
      operationId: postNetworkPeering
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateNetworkPeeringRequest'
            examples:
              PostNetworkPeersAWS:
                value:
                  name: VPCPeerTestAWS
                  providerType: aws
                  providerConfig:
                    accountID: 123456789110
                    vpcId: vpc-00ff00ff00ff0f
                    region: us-east-1
                    cidr: 10.1.0.0/23
              PostNetworkPeersGCP:
                value:
                  name: VPCPeerTestGCP
                  providerType: gcp
                  providerConfig:
                    networkName: cc-ffffffff-aaaa-1414-eeee-000000000000
                    projectId: test-00ff00ff00ff0fff
                    serviceAccount: sa-ffffffff-eee-aa-test@test-00ff00ff00ff0fff.iam.gserviceaccount.com
                    cidr: 10.1.0.0/23
              PostNetworkPeersAzure:
                value:
                  name: VnetPeerTestAzure
                  providerType: azure
                  providerConfig:
                    azureTenantId: ffffffff-aaaa-1414-eeee-000000000000
                    subscriptionId: ffffffff-aaaa-1414-eeee-000000000000
                    resourceGroup: sample-resource-group
                    vnetId: sample-vnet
                    cidr: 10.1.0.0/23
      responses:
        '201':
          description: Successfully created network peering.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateNetworkPeeringResponse'
        '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 Network Peering Records
      description: |
        Lists all the network peering records.

        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:
        - Network Peers
      operationId: listNetworkPeeringRecords
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - 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**, **status**.'
          example:
            - name
          required: false
          schema:
            type: array
            items:
              type: string
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed all the network peering records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListNetworkPeeringRecordsResponse'
        '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}/analyticsClusters/{analyticsClusterId}/privateEndpointService:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/privateEndpointService/endpointCommand:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
  /v4/organizations/{organizationId}/projects/{projectId}/analyticsClusters/{analyticsClusterId}/privateEndpointService/endpoints:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AnalyticsClusterId'
  /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'
  /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'
  /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'
    get:
      summary: Get Network Peering record
      description: |
        Fetches the details of the network peering meta data based on the peerID provided.

        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:
        - Network Peers
      operationId: getNetworkPeeringRecord
      responses:
        '200':
          description: Successfully fetched the network peering meta data based on the peerID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetNetworkPeeringRecordResponse'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete Network Peering
      description: |
        Deletes the network peering relationship.

        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:
        - Network Peers
      operationId: deleteNetworkPeering
      responses:
        '204':
          description: Successfully deleted the network peering relationship.
        '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}/alertIntegrations:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
    post:
      summary: Create Alert Integration
      description: |
        Creates a new alert integration for a 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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Alert Integration
      operationId: postAlertIntegration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAlertRequest'
      responses:
        '201':
          description: Successfully created an alert integration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAlertResponse'
        '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 Alert Integrations
      description: |
        Lists all the alert integrations under the project.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Organization Member
        - 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:
        - Alert Integration
      operationId: listAlertIntegrations
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/ProjectsSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: Successfully listed all the alert integrations under the project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAlertsResponse'
        '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}/alertIntegrations/{alertIntegrationId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/AlertIntegrationId'
    get:
      summary: Get Alert Integration
      description: |
        Fetches the details of the given alert integration.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - Organization Owner
        - Organization Member
        - 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:
        - Alert Integration
      operationId: getAlertIntegrationByID
      responses:
        '200':
          description: Successfully fetched the alert integration based on the alertIntegrationId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAlertResponse'
        '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 Alert Integration
      description: |
        Update the details of the given alert integration.

        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:
        - Alert Integration
      operationId: putAlertIntegration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAlertRequest'
      responses:
        '204':
          description: Successfully updated the metadata for the alert integration.
        '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 Alert Integration
      description: |
        Deletes an existing alert integration.

        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:
        - Alert Integration
      operationId: deleteAlertIntegrationByID
      responses:
        '204':
          description: Successfully deleted the alert integration by its alertIntegrationId.
        '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}/alertIntegrationTest:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
    post:
      summary: Test Alert Integration
      description: |
        Tests a new alert integration for a 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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Alert Integration
      operationId: postTestAlertIntegration
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - kind
                - config
              properties:
                kind:
                  type: string
                  description: Type of alert integration, currently supports only 'webhook'.
                  example: webhook
                  enum:
                    - webhook
                config:
                  $ref: '#/components/schemas/RequestConfig'
      responses:
        '202':
          description: Successfully tested an alert integration.
        '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}/events:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    get:
      summary: List Events
      description: |
        Lists all the events information under a organization.

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

        The results are always limited by the role and scope of the caller's privileges.
        Currently, only the `tags` filter is multi-valued; all other filters are single-valued.

        By default, `to` is set to the request time, and `from` is set to 24 hours before the
        request time. If 'to' is set and 'from' is not set, then 'from' is set to 24 hours
        before 'to'.


        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Events
      operationId: listEvents
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/EventsSortBy'
        - $ref: '#/components/parameters/SortDirection'
        - $ref: '#/components/parameters/UserIds'
        - $ref: '#/components/parameters/ClusterIds'
        - $ref: '#/components/parameters/ProjectIds'
        - $ref: '#/components/parameters/SeverityLevels'
        - $ref: '#/components/parameters/Tags'
        - $ref: '#/components/parameters/From'
        - $ref: '#/components/parameters/To'
      responses:
        '200':
          description: Successfully listed the events under the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsResponse'
              examples:
                listEventsResponse:
                  value:
                    data:
                      - id: ffffffff-aaaa-1414-eeee-000000000001
                        source: System
                        key: cluster_down
                        severity: critical
                        timestamp: '2024-04-24T08:30:00Z'
                        projectId: ffffffff-aaaa-1414-eeee-000000000003
                        projectName: example-project
                        clusterId: ffffffff-aaaa-1414-eeee-000000000004
                        clusterName: example-cluster
                        appServiceId: ffffffff-aaaa-1414-eeee-000000000006
                        appServiceName: example-appService
                        userId: ffffffff-aaaa-1414-eeee-000000000008
                        userName: John Doe
                        userEmail: john.doe@example.com
                        sessionId: ffffffff-aaaa-1414-eeee-000000000009
                        requestId: ffffffff-aaaa-1414-eeee-000000000010
                        kv:
                          key1: value1
                          key2: value2
                        summary: Cluster is down due to network outage.
                        incidentIds:
                          - ffffffff-aaaa-1414-eeee-000000000011
                        occurrenceCount: 3
                        imageURL: https://example.com/chart.png
                        alertKey: cluster_down_example
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/events/{eventId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/EventId'
    get:
      summary: Get Event
      description: |
        Fetches the details of an event 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
         - Project Owner
         - Project Manager
         - Project Viewer
         - Database Data Reader
         - Database Data Reader/Writer

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

        To learn more, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html).
      tags:
        - Events
      operationId: getEventByID
      responses:
        '200':
          description: Successfully returned the event details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventResponse'
              examples:
                eventResponse:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000001
                    source: System
                    key: cluster_down
                    severity: critical
                    timestamp: '2024-04-24T08:30:00Z'
                    projectId: ffffffff-aaaa-1414-eeee-000000000003
                    projectName: example-project
                    clusterId: ffffffff-aaaa-1414-eeee-000000000004
                    clusterName: example-cluster
                    appServiceId: ffffffff-aaaa-1414-eeee-000000000006
                    appServiceName: example-appService
                    userId: ffffffff-aaaa-1414-eeee-000000000008
                    userName: John Doe
                    userEmail: john.doe@example.com
                    sessionId: ffffffff-aaaa-1414-eeee-000000000009
                    requestId: ffffffff-aaaa-1414-eeee-000000000010
                    kv:
                      key1: value1
                      key2: value2
                    summary: Cluster is down due to network outage.
                    incidentIds:
                      - ffffffff-aaaa-1414-eeee-000000000011
                    occurrenceCount: 3
                    imageURL: https://example.com/chart.png
                    alertKey: cluster_down_example
        '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}/events:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
    get:
      summary: List Events
      description: |
        Lists all the events information under a 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
         - Database Data Reader/Writer

        The results are always limited by the role and scope of the caller's privileges.
        Currently, only the `tags` filter is multi-valued; all other filters are single-valued.

        By default, `to` is set to the request time, and `from` is set to 24 hours before the
        request time. If 'to' is set and 'from' is not set, then 'from' is set to 24 hours
        before 'to'.

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Events
      operationId: listProjectEvents
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/EventsSortBy'
        - $ref: '#/components/parameters/SortDirection'
        - $ref: '#/components/parameters/UserIds'
        - $ref: '#/components/parameters/ClusterIds'
        - $ref: '#/components/parameters/SeverityLevels'
        - $ref: '#/components/parameters/Tags'
        - $ref: '#/components/parameters/From'
        - $ref: '#/components/parameters/To'
      responses:
        '200':
          description: Successfully listed the events under the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsResponse'
              examples:
                listEventsResponse:
                  $ref: '#/paths/~1v4~1organizations~1{organizationId}~1events/get/responses/200/content/application~1json/examples/listEventsResponse'
        '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}/events/{eventId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/EventId'
    get:
      summary: Get Project Event
      description: |
        Fetches the details of an event by ID within a 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
         - Database Data Reader/Writer

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

        To learn more, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html).
      tags:
        - Events
      operationId: getProjectEventByID
      responses:
        '200':
          description: Successfully returned the event details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventResponse'
              examples:
                eventResponse:
                  $ref: '#/paths/~1v4~1organizations~1{organizationId}~1events~1{eventId}/get/responses/200/content/application~1json/examples/eventResponse'
        '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/networkPeerCommand:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Get Azure VNET Peering CLI Command
      description: |
        Retrieves the role assignment command or script to be executed in the Azure CLI to assign a new network contributor role. It scopes only to the specified subscription and the virtual network within that subscription.

        - Before using this API, please make sure that the *Admin consent granting* process has been completed through the Capella UI.
        - This process to grant consent to the VNET peering service principal in the external Azure tenant needs to be done only once for the organization i.e. the first time when the VNET peering is created.
        - Consenting to this permission request creates a service principal that grants Capella access to the Azure tenant to perform VNET peering.
        - To complete the admin consent granting process, the Organization owner should follow the steps below -
            1. Login to the Capella UI.
            2. Deploy an Azure Cluster or open an existing one you want to peer with your application.
            3. Click the Settings tab, in the navigation pane click VNET Peering.
            4. Click Setup VNET Peering.
            5. Confirm that you have a user with the Global Administrator Role.
            6. Add the Azure configuration details to allow peering access.
            7. Click Allow Peering Access - A new browser tab opens. Sign in to Azure if you have not already.
            8. In Azure, accept Capella’s permissions request - The Azure permissions request page is open in the new browser tab and consent to the new permissions request.
              For more information refer [docs]- https://docs.couchbase.com/cloud/clouds/vpc-peering/peer-azure.html
        - On accepting the new permission, you automatically return to the Capella VNET peering page. The Capella VNET peering page shows a notice indicating that peering access is successful.

        - The Organization Owner should set this up once, then for network peering, use the public API -
            1. Use this `Get Azure VNET Peering CLI Command` API to fetch the command.
            2. Run the role assignment command in the Azure CLI.
            3. Use the `Create VPC Peering` API to create the network peering.

        - In order to access this endpoint, the provided API key must have at least one of the following roles:
          - Organization Owner
          - Project Owner
      tags:
        - Network Peers
      operationId: getAzureVnetPeeringCommand
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetAzureVNetPeeringCommandRequest'
      responses:
        '200':
          description: Successfully provided command to create a network peering.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAzureVNetPeeringCommandResponse'
        '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}/queryService/indexes:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Manage Query Indexes
      description: |
        CREATE/DROP/ALTER/BUILD primary and secondary indexes.

        To learn more about indexes please refer to the [documentation](https://docs.couchbase.com/server/current/learn/services-and-indexes/indexes/indexing-and-query-perf.html).

        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.

        To access this endpoint the API key must have at least one of the following roles:
          - Organization Owner
          - Project Owner
          - Database Data Reader/Writer

        To learn more, see [Organization Roles](https://docs.couchbase.com/cloud/organizations/organization-user-roles.html).
      tags:
        - Query Indexes
      operationId: manageQueryIndexes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IndexDDLRequest'
            examples:
              CreateIndexExample:
                value:
                  definition: create index idx1 on `travel-sample`.inventory.route(airline, destinationairport, sourceairport) partition by hash(airline) where id in [1000,2000,3000]
              AlterIndexExample:
                value:
                  definition: 'alter index idx1 on api.stats.latency with { \"action\": \"replica_count\", \"num_replica\": 2 }'
              DropIndexExample:
                value:
                  definition: drop index idx1 on api.stats.latency
              BuildIndexExample:
                value:
                  definition: build index on api.stats.latency(idx10, idx11, idx12)
      responses:
        '200':
          description: |
            Successfully sent index DDL statement. A 200 response does not imply that the DDL was successfully executed.
            It implies that request was accepted but there could be an error in processing the index command.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IndexDDLResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/IndexNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: Get List Of Index Definitions
      description: |
        Get index definitions in a keyspace.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
          - Organization Owner
          - Project Owner
          - 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:
        - Query Indexes
      operationId: listIndexDefinitions
      parameters:
        - $ref: '#/components/parameters/BucketQueryParameter'
        - $ref: '#/components/parameters/ScopeQueryParameter'
        - $ref: '#/components/parameters/CollectionQueryParameter'
      responses:
        '200':
          description: Successfully retrieved list of index definitions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListIndexDefinitionsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/IndexNotFound'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /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'
    get:
      summary: Get Index Properties
      description: |
        Get the index properties of a specified index in a keyspace.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
          - Organization Owner
          - Project Owner
          - 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:
        - Query Indexes
      operationId: indexDefinition
      parameters:
        - $ref: '#/components/parameters/BucketQueryParameter'
        - $ref: '#/components/parameters/ScopeQueryParameter'
        - $ref: '#/components/parameters/CollectionQueryParameter'
      responses:
        '200':
          description: Successfully retrieved index properties.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IndexPropertiesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/IndexNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /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'
    get:
      summary: Get Index Build Status
      description: |
        Monitor the build status of an index.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
          - Organization Owner
          - Project Owner
          - 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:
        - Query Indexes
      operationId: indexBuildStatus
      parameters:
        - $ref: '#/components/parameters/BucketQueryParameter'
        - $ref: '#/components/parameters/ScopeQueryParameter'
        - $ref: '#/components/parameters/CollectionQueryParameter'
      responses:
        '200':
          description: Successfully retrieved build status for a given index.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IndexBuildStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/IndexNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/aiServices/providers:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    get:
      summary: List providers
      description: |
        Lists all the Provider integrations configured a given organization. Use the `providerType` to filter on the type of Provider.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Services Providers
      operationId: listProviders
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/ProviderType'
      responses:
        '200':
          description: Successfully listed all the providers under the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProvidersResponse'
        '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'
    post:
      summary: Create provider
      description: |
        Creates a new OpenAI integration for a given organization.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Services Providers
      operationId: createProvider
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProviderRequest'
            examples:
              CreateOpenAIProviderExample:
                value:
                  type: openAI
                  name: provider1
                  configuration:
                    apiKey: your-openai-key
              CreateS3ProviderExample:
                value:
                  type: awsS3
                  name: provider1
                  configuration:
                    accessKeyId: your-access-key-id
                    secretAccessKey: your-secret-access-key
                    awsRegion: us-east-1
                    bucket: my-bucket
                    folderPath: my-folder
              CreateS3ProviderWithSessionTokenExample:
                value:
                  type: awsS3
                  name: provider2
                  configuration:
                    accessKeyId: your-access-key-id
                    secretAccessKey: your-secret-access-key
                    sessionToken: your-session-token
                    awsRegion: us-east-1
                    bucket: my-bucket
              CreateBedrockProviderExample:
                value:
                  type: awsBedrock
                  name: provider1
                  configuration:
                    accessKeyId: your-access-key-id
                    secretAccessKey: your-secret-access-key
      responses:
        '201':
          description: Successfully created a provider.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProviderResponse'
        '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}/aiServices/providers/{providerId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProviderId'
    get:
      summary: Get provider
      description: |
        Fetches the details of a specific provider.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Services Providers
      operationId: getProvider
      parameters:
        - $ref: '#/components/parameters/OrganizationId'
        - $ref: '#/components/parameters/ProviderId'
      responses:
        '200':
          description: Successfully fetched the details of the provider.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProviderResponse'
              examples:
                GetOpenAIProviderExample:
                  value:
                    name: provider1
                    type: openAI
                    configuration: null
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56Z'
                      version: 1
                GetS3ProviderExample:
                  value:
                    name: provider1
                    type: awsS3
                    configuration:
                      awsRegion: us-east-1
                      bucket: my-bucket
                      folderPath: my-folder
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56Z'
                      version: 1
                GetS3ProviderWithSessionTokenExample:
                  value:
                    name: provider2
                    type: awsS3
                    configuration:
                      awsRegion: us-east-1
                      bucket: my-bucket
                      folderPath: ''
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56Z'
                      version: 1
                GetBedrockProviderExample:
                  value:
                    name: provider1
                    type: awsBedrock
                    configuration: null
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56Z'
                      modifiedBy: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-09-01T12:34:56Z'
                      version: 1
        '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'
    put:
      summary: Update provider
      description: |
        Updates an existing provider.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Services Providers
      operationId: updateProvider
      parameters:
        - $ref: '#/components/parameters/If-Match'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProviderRequest'
            examples:
              UpdateOpenAIProviderExample:
                value:
                  configuration:
                    apiKey: new-openai-api-key
              UpdateS3ProviderExample:
                value:
                  configuration:
                    accessKeyId: new-access-key-id
                    secretAccessKey: new-secret-access-key
              UpdateS3ProviderWithSessionTokenExample:
                value:
                  configuration:
                    accessKeyId: your-new-access-key-id
                    secretAccessKey: your-new-secret-access-key
                    sessionToken: your-new-session-token
              UpdateBedrockProviderExample:
                value:
                  configuration:
                    accessKeyId: new-access-key-id
                    secretAccessKey: new-secret-access-key
      responses:
        '204':
          description: Successfully submitted request to update provider.
        '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'
    delete:
      summary: Delete provider
      description: |
        Deletes an existing provider.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Services Providers
      operationId: deleteProvider
      responses:
        '204':
          description: Successfully deleted the provider by its providerId.
        '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}/aiServices/workflows:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: List AI Workflows
      description: |
        Lists all the workflows for a specific 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
        - Data Reader
        - Data Reader/Writer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Workflows
      operationId: listAiWorkflows
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
      responses:
        '200':
          description: Successfully listed all the workflows for the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWorkflowsResponse'
        '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'
    post:
      summary: Create AI Workflow
      description: |
        Creates a new workflow based on the specified workflow type.

        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:
        - AI Workflows
      operationId: createAiWorkflow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowRequest'
            examples:
              Structured Data Workflow:
                value:
                  name: my-structured-workflow
                  type: structuredDataProcessing
                  configuration:
                    source:
                      providerId: provider2-ffffffff-aaaa-1414-eeee
                    targetCouchbaseKeyspace:
                      bucket: my-bucket
                      scope: my-scope
                      collection: my-collection
                    structuredDataProcessingConfig:
                      jsonType: jsonlist
                    vectorizationConfig:
                      createIndexes: true
                      embeddingFieldMappings:
                        vectorEmbeddingField1:
                          sourceFields:
                            - field1
                            - field2
                        vectorEmbeddingField2:
                          sourceFields:
                            - field3
                            - field4
                      embeddingModel:
                        capellaHosted:
                          id: 550e8400-e29b-41d4-a716-446655440000
              Unstructured Data Workflow:
                value:
                  name: my-unstructured-workflow
                  type: unstructuredDataProcessing
                  configuration:
                    source:
                      providerId: provider2-ffffffff-aaaa-1414-eeee
                    targetCouchbaseKeyspace:
                      bucket: my-bucket
                      scope: my-scope
                      collection: my-collection
                    unstructuredDataProcessingConfig:
                      pageNumbers:
                        - 3
                        - 18
                      exclusions:
                        - Header
                        - Footer
                      enableOCR: true
                      chunkingStrategy:
                        strategyType: TEXT_SPLITTER
                        chunkSize: 1000
                        chunkOverlap: 100
                    vectorizationConfig:
                      createIndexes: true
                      embeddingFieldMappings:
                        vectorEmbeddingField1:
                          sourceFields:
                            - field1
                            - field2
                        vectorEmbeddingField2:
                          sourceFields:
                            - field3
                            - field4
                      embeddingModel:
                        external:
                          openAiIntegration:
                            providerId: provider1-ffffffff-aaaa-1414-eeee-000000000000
                          modelName: text-embedding-3-small
              Vectorization Workflow:
                value:
                  name: my-vectorization-workflow
                  type: vectorization
                  configuration:
                    targetCouchbaseKeyspace:
                      bucket: my-bucket
                      scope: my-scope
                      collection: my-collection
                    vectorizationConfig:
                      createIndexes: true
                      embeddingFieldMappings:
                        vectorEmbeddingField1:
                          sourceFields:
                            - field1
                            - field2
                      embeddingModel:
                        external:
                          openAiIntegration:
                            providerId: provider1-ffffffff-aaaa-1414-eeee-000000000000
                          modelName: text-embedding-3-small
      responses:
        '201':
          description: Successfully created a workflow.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWorkflowResponse'
              examples:
                CreateWorkflow:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /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'
    get:
      summary: Get AI Workflow
      description: |
        Retrieves the details of a specific workflow.

        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
        - Data Reader
        - Data Reader/Writer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Workflows
      operationId: getAiWorkflow
      responses:
        '200':
          description: Successfully retrieved the details of the workflow.
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWorkflowResponse'
              examples:
                Vectorization Workflow:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
                    name: my-vectorization-workflow
                    type: vectorization
                    configuration:
                      targetCouchbaseKeyspace:
                        bucket: my-bucket
                        scope: my-scope
                        collection: my-collection
                      vectorizationConfig:
                        createIndexes: true
                        embeddingFieldMappings:
                          vectorEmbeddingField1:
                            sourceFields:
                              - field1
                              - field2
                        embeddingModel:
                          external:
                            openAiIntegration:
                              name: my-openai-integration
                              providerId: provider1-ffffffff-aaaa-1414-eeee-000000000000
                            modelName: text-embedding-3-small
                    audit:
                      createdAt: '2021-01-01T00:00:00Z'
                      createdByUserID: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-01-01T00:00:00Z'
                      modifiedByUserID: ffffffff-aaaa-1414-eeee-000000000000
                      version: 1
                Structured Data Workflow:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
                    name: my-structured-workflow
                    type: structuredDataProcessing
                    configuration:
                      source:
                        name: my-s3-integration
                        providerId: provider2-ffffffff-aaaa-1414-eeee
                      targetCouchbaseKeyspace:
                        bucket: my-bucket
                        scope: my-scope
                        collection: my-collection
                      structuredDataProcessingConfig:
                        keyFieldName: my-key-field
                        jsonType: jsonlist
                      vectorizationConfig:
                        createIndexes: true
                        embeddingFieldMappings:
                          vectorEmbeddingField1:
                            sourceFields:
                              - field1
                              - field2
                          vectorEmbeddingField2:
                            sourceFields:
                              - field3
                              - field4
                        embeddingModel:
                          external:
                            openAiIntegration:
                              name: my-openai-integration
                              providerId: provider1-ffffffff-aaaa-1414-eeee-000000000000
                            modelName: text-embedding-3-small
                    audit:
                      createdAt: '2021-01-01T00:00:00Z'
                      createdByUserID: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-01-01T00:00:00Z'
                      modifiedByUserID: ffffffff-aaaa-1414-eeee-000000000000
                      version: 1
                Unstructured Data Workflow:
                  value:
                    id: ffffffff-aaaa-1414-eeee-000000000000
                    name: my-unstructured-workflow
                    type: unstructuredDataProcessing
                    configuration:
                      source:
                        name: my-s3-integration
                        providerId: provider2-ffffffff-aaaa-1414-eeee
                      targetCouchbaseKeyspace:
                        bucket: my-bucket
                        scope: my-scope
                        collection: my-collection
                      unstructuredDataProcessingConfig:
                        pageNumbers:
                          - 3
                          - 18
                        exclusions:
                          - Header
                          - Footer
                        enableOCR: true
                        chunkingStrategy:
                          strategyType: TEXT_SPLITTER
                          chunkSize: 1000
                          chunkOverlap: 100
                      vectorizationConfig:
                        createIndexes: true
                        embeddingFieldMappings:
                          vectorEmbeddingField1:
                            sourceFields:
                              - field1
                              - field2
                          vectorEmbeddingField2:
                            sourceFields:
                              - field3
                              - field4
                        embeddingModel:
                          capellaHosted:
                            id: 550e8400-e29b-41d4-a716-446655440000
                            modelName: testCapellaHostedModel
                    audit:
                      createdAt: '2021-01-01T00:00:00Z'
                      createdByUserID: ffffffff-aaaa-1414-eeee-000000000000
                      modifiedAt: '2021-01-01T00:00:00Z'
                      modifiedByUserID: ffffffff-aaaa-1414-eeee-000000000000
                      version: 1
        '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'
    delete:
      summary: Delete AI Workflow
      description: |
        Deletes an existing workflow.

        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:
        - AI Workflows
      operationId: deleteAiWorkflow
      responses:
        '202':
          description: Workflow deletion is in progress.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /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'
    get:
      summary: List AI Workflow Runs
      description: |
        Lists all the workflow runs for a specific workflow.

        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
        - Data Reader
        - Data Reader/Writer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Workflows
      operationId: listAiWorkflowRuns
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
      responses:
        '200':
          description: Successfully listed all the workflow runs for the specified workflow.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWorkflowRunsResponse'
        '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'
    post:
      summary: Run an AI Workflow
      description: |
        Starts a specific workflow.
        On the first run, the workflow processes all files specified in the workflow configuration.
        On subsequent runs, it processes only new, updated, or previously failed files.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Workflows
      operationId: createAiWorkflowRun
      responses:
        '202':
          description: Successfully started a workflow run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWorkflowRunResponse'
              examples:
                CreateWorkflowRun:
                  $ref: '#/paths/~1v4~1organizations~1{organizationId}~1projects~1{projectId}~1clusters~1{clusterId}~1aiServices~1workflows/post/responses/201/content/application~1json/examples/CreateWorkflow'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Stop AI Workflow Run
      description: |
        Stops a workflow run that is in progress.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Workflows
      operationId: stopAiWorkflowRun
      responses:
        '202':
          description: Stopping the workflow. This may take a moment.
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /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'
    get:
      summary: Get AI Workflow Run
      description: |
        Retrieves the details of a specific workflow run.

        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
        - Data Reader
        - Data Reader/Writer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Workflows
      operationId: getAiWorkflowRun
      responses:
        '200':
          description: Successfully retrieved the details of the workflow run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWorkflowRunResponse'
              examples:
                GetWorkflowRun:
                  value:
                    id: 123e4567-e89b-12d3-a456-426614174000
                    totalFiles: 100
                    processedFiles: 37
                    erroredFiles: 2
                    elapsedTime: 1234567890
                    status: running
                    createdAt: '2021-01-01T00:00:00Z'
                    createdByUserID: 123e4567-e89b-12d3-a456-426614174000
        '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}/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'
    get:
      summary: Get AI Workflow Run Processed Files
      description: |
        Retrieves the processed files for a specific workflow run.

        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
        - Data Reader
        - Data Reader/Writer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - AI Workflows
      operationId: getAiWorkflowRunProcessedFiles
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/FileStatus'
      responses:
        '200':
          description: Successfully retrieved the processed files for the workflow run.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWorkflowRunProcessedFilesResponse'
              examples:
                Processed Files:
                  value:
                    cursor:
                      pages:
                        page: 1
                        last: 1
                        perPage: 25
                        totalItems: 3
                      hrefs: {}
                    data:
                      - fileName: file1.pdf
                        filePath: documents/reports
                        fileStatus: success
                      - fileName: file2.json
                        filePath: data
                        fileStatus: failed
                        error:
                          code: INVALID_FORMAT
                          message: 'Invalid JSON format: unexpected token at position 145'
                      - fileName: file3.docx
                        filePath: uploads
                        fileStatus: failed
                        error:
                          code: SIZE_LIMIT_EXCEEDED
                          message: File size exceeds the maximum allowed limit of 50MB
        '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}/aiServices/models:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    get:
      summary: List Models
      description: |
        Fetches the details of all the models.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Models (AI Services)
      operationId: listModels
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - name: modelStatus
          description: Filter by model status. All models are returned when set empty.
          in: query
          schema:
            type: string
            enum:
              - pending
              - deploying
              - deployFailed
              - healthy
              - unhealthy
              - pausing
              - paused
              - resuming
              - pauseFailed
              - resumeFailed
        - name: modelKind
          description: Filter by model kind. All models are returned when this is set empty.
          in: query
          schema:
            type: string
            enum:
              - embedding-generation
              - text-generation
      responses:
        '200':
          description: Successfully fetched the models.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLanguageModelsResponse'
        '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: Create Model
      description: |
        Create a new model deployment.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Models (AI Services)
      operationId: createModel
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
                - catalogModelName
                - cloudConfig
              description: Request body for creating a language model
              properties:
                name:
                  type: string
                  description: Name of the model.
                  example: my-new-model
                catalogModelName:
                  type: string
                  description: Name of the model deployed from the model catalog.
                  example: meta-llama/Llama-3.1-8B-Instruct
                cloudConfig:
                  $ref: '#/components/schemas/CloudConfig'
                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 specify the vector dimensions for the underlying embedding model.
                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
                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
            examples:
              EmbeddingModel:
                summary: Deployment Payload for Embedding Model with g6.xlarge
                value:
                  name: my-embedding-model
                  catalogModelName: Snowflake/snowflake-arctic-embed-m-v2.0
                  cloudConfig:
                    provider: aws
                    region: us-east-1
                    compute:
                      cpu: 4
                      ram: 16
                  quantization: fullPrecision
                  optimization: throughput
              TextGenerationModelWithSecurity:
                summary: Deployment Payload for Text Generation Model - with security features and g6.xlarge
                value:
                  name: my-text-generation-model
                  catalogModelName: meta-llama/Llama-3.1-8B-Instruct
                  cloudConfig:
                    provider: aws
                    region: us-east-1
                    compute:
                      cpu: 4
                      ram: 16
                  quantization: fullPrecision
                  optimization: throughput
                  guardrails:
                    - hate speech
                    - sexual violence
                  jailbreak:
                    scoreThreshold: 0.75
              TextGenerationModelBasic:
                summary: Deployment Payload for Text Generation Model - without security features and g6.xlarge
                value:
                  name: my-text-generation-model
                  catalogModelName: meta-llama/Llama-3.1-8B-Instruct
                  cloudConfig:
                    provider: aws
                    region: us-east-1
                    compute:
                      cpu: 4
                      ram: 16
                  quantization: fullPrecision
                  optimization: throughput
              TextGenerationModelNoValueAdds:
                summary: Deployment Payload for Text Generation Model - without value adds and g6.xlarge
                value:
                  name: my-text-generation-model
                  catalogModelName: meta-llama/Llama-3.1-8B-Instruct
                  cloudConfig:
                    provider: aws
                    region: us-east-1
                    compute:
                      cpu: 4
                      ram: 16
                  quantization: fullPrecision
                  optimization: throughput
              TextGenerationModelAllCache:
                summary: Deployment Payload for Text Generation Model - with value adds - all cache and g6.xlarge
                value:
                  name: my-text-generation-model
                  catalogModelName: meta-llama/Llama-3.1-8B-Instruct
                  cloudConfig:
                    provider: aws
                    region: us-east-1
                    compute:
                      cpu: 4
                      ram: 16
                  quantization: fullPrecision
                  optimization: throughput
                  caching:
                    enableStandard: true
                    enableConversational: true
                    semantic:
                      embeddingModel: my-embedding-model-id
                      scoreThreshold: 0.75
                      dimensions: 4096
                      distanceMetric: dot_product
                    defaultCache: semantic
                    expiryTTL: 4000
                  enableBatching: true
                  keywordFiltering:
                    - death"
                    - massacre
              TextGenerationModelStandardCache:
                summary: Deployment Payload for Text Generation Model - with value adds - only standard cache and g6.xlarge
                value:
                  name: my-text-generation-model
                  catalogModelName: meta-llama/Llama-3.1-8B-Instruct
                  cloudConfig:
                    provider: aws
                    region: us-east-1
                    compute:
                      cpu: 4
                      ram: 16
                  quantization: fullPrecision
                  optimization: throughput
                  caching:
                    enableStandard: true
                    enableConversational: true
                    defaultCache: standard
                    expiryTTL: 4000
                  enableBatching: true
                  keywordFiltering:
                    - death
                    - massacre
              TextGenerationModelSemanticCache:
                summary: Deployment Payload for Text Generation Model - with value adds - only semantic cache and g6.xlarge
                value:
                  name: my-text-generation-model
                  catalogModelName: meta-llama/Llama-3.1-8B-Instruct
                  cloudConfig:
                    provider: aws
                    region: us-east-1
                    compute:
                      cpu: 4
                      ram: 16
                  quantization: fullPrecision
                  optimization: throughput
                  caching:
                    enableStandard: false
                    enableConversational: true
                    semantic:
                      embeddingModel: my-embedding-model-id
                      scoreThreshold: 0.75
                      dimensions: 4096
                      distanceMetric: dot_product
                    defaultCache: semantic
                    expiryTTL: 4000
                  enableBatching: true
                  keywordFiltering:
                    - death
                    - massacre
              TextGenerationModelNoConversationalCache:
                summary: Deployment Payload for Text Generation Model - with value adds - no conversational cache and g6.xlarge
                value:
                  name: my-text-generation-model
                  catalogModelName: meta-llama/Llama-3.1-8B-Instruct
                  cloudConfig:
                    provider: aws
                    region: us-east-1
                    compute:
                      cpu: 4
                      ram: 16
                  quantization: fullPrecision
                  optimization: throughput
                  caching:
                    enableStandard: false
                    enableConversational: false
                    semantic:
                      embeddingModel: my-embedding-model-id
                      scoreThreshold: 0.75
                      dimensions: 4096
                      distanceMetric: dot_product
                    defaultCache: semantic
                    expiryTTL: 4000
                  enableBatching: true
                  keywordFiltering:
                    - death
                    - massacre
              TextGenerationModelNoBatching:
                summary: Deployment Payload for Text Generation Model - with value adds - without batching and g6.xlarge
                value:
                  name: my-text-generation-model
                  catalogModelName: meta-llama/Llama-3.1-8B-Instruct
                  cloudConfig:
                    provider: aws
                    region: us-east-1
                    compute:
                      cpu: 4
                      ram: 16
                  quantization: fullPrecision
                  optimization: throughput
                  caching:
                    enableStandard: true
                    enableConversational: true
                    semantic:
                      embeddingModel: my-embedding-model-id
                      scoreThreshold: 0.75
                      dimensions: 4096
                      distanceMetric: dot_product
                    defaultCache: semantic
                    expiryTTL: 4000
                  enableBatching: false
                  keywordFiltering:
                    - death
                    - massacre
              TextGenerationModelNoKeywordFiltering:
                summary: Deployment Payload for Text Generation Model - with value adds - without keyword filtering and g6.xlarge
                value:
                  name: my-text-generation-model
                  catalogModelName: meta-llama/Llama-3.1-8B-Instruct
                  cloudConfig:
                    provider: aws
                    region: us-east-1
                    compute:
                      cpu: 4
                      ram: 16
                  quantization: fullPrecision
                  optimization: throughput
                  caching:
                    enableStandard: true
                    enableConversational: true
                    semantic:
                      embeddingModel: my-embedding-model-id
                      scoreThreshold: 0.75
                      dimensions: 4096
                      distanceMetric: dot_product
                    defaultCache: semantic
                    expiryTTL: 4000
                  enableBatching: false
      responses:
        '202':
          description: Model queued for deployment successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateLanguageModelResponse'
        '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}/aiServices/models/{modelId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ModelId'
    get:
      summary: Get Model
      description: |
        Fetches the details of the given model.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Models (AI Services)
      operationId: getModel
      responses:
        '200':
          description: Successfully fetched the model based on the ModelId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLanguageModelResponse'
        '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 Model
      description: |
        Destroys an existing model.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Models (AI Services)
      operationId: destroyModel
      responses:
        '202':
          description: Successfully queued the model for deletion.
        '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'
    put:
      summary: Update Model
      description: |
        Updates an existing model.

        Model updates may take up to a few minutes to take effect.

        In order to access this endpoint, the provided API key must have at least one of the following roles:
        - 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:
        - Models (AI Services)
      operationId: putModel
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateModelRequest'
            examples:
              UpdateModelRequestExample:
                summary: Update Model Request Payload
                value:
                  name: my-updated-text-generation-model
                  caching:
                    enableStandard: true
                    enableConversational: true
                    semantic:
                      embeddingModel: my-embedding-model-id
                      scoreThreshold: 0.8
                      dimensions: 4096
                      distanceMetric: dot_product
                    defaultCache: semantic
                    expiryTTL: 3600
                  enableBatching: true
                  keywordFiltering:
                    - violence
                    - harassment
                    - inappropriate
                  guardrails:
                    - hate speech
                    - sexual content
                    - violence
                  jailbreak:
                    scoreThreshold: 0.85
              UpdateModelRequestValueAdds:
                summary: Update Model Request Payload - caching configuration
                value:
                  caching:
                    enableStandard: false
                    enableConversational: false
                    semantic:
                      embeddingModel: my-embedding-model-id
                      scoreThreshold: 0.75
                      dimensions: 1024
                      distanceMetric: dot_product
                    defaultCache: semantic
                    expiryTTL: 7200
                  enableBatching: false
              UpdateModelRequestSecurity:
                summary: Update Model Request Payload - Update security features
                value:
                  guardrails:
                    - hate speech
                    - violence
                    - harassment
                    - spam
                  jailbreak:
                    scoreThreshold: 0.9
      responses:
        '204':
          description: Successfully submitted request to update model.
        '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}/aiServices/models/{modelId}/connectionString:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ModelId'
    get:
      summary: Get Model Connection String
      description: |
        Fetches the connection string to connect to the model.

        Use this connection string as the base URL in your [Model Service API](https://docs.couchbase.com/ai/model-service-api-reference/rest-api.html) inference requests. For more information, see [Make an API Call with the Model Service API](https://docs.couchbase.com/ai/api-guide/api-use.html#model-api-call).

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Models (AI Services)
      operationId: getConnectionString
      responses:
        '200':
          description: Successfully fetched the connectionString.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetConnectionStringResponse'
        '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}/aiServices/models/{modelId}/activationState:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ModelId'
    post:
      summary: Turn On Model
      description: |
        Resumes the model or turns the model to On state.

        The connection URL remains unchanged when the model is turned on or off.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Models (AI Services)
      operationId: modelOn
      responses:
        '202':
          description: Successfully switched the model to on state.
        '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: Turn Off Model
      description: |
        Pauses the model or turns the model to off state.

        The connection URL remains unchanged when the model is turned on or off.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Models (AI Services)
      operationId: modelOff
      responses:
        '202':
          description: Successfully switched the model to off state.
        '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}/aiServices/models/apiKeys:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
    post:
      summary: Create API Key
      description: |
        Creates a new API Key for the specified region within an organization.
        API Key created for a region can be used to access all the models of that region for inferencing.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      operationId: createModelAPIKey
      tags:
        - Model Services API Keys (AI Services)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLanguageModelAPIKeyRequest'
            examples:
              createLanguageModelAPIKeyExample:
                summary: Create API Key Example - All Models (default)
                description: Example request for creating a new Language Model API Key with access to all models (allowedModels empty defaults to wildcard)
                value:
                  name: MyLanguageModelAPIKey-AllModels
                  description: API key for accessing all models in the region
                  expiry: 180
                  allowedCIDRs:
                    - 192.168.1.0/24
                    - 10.0.0.0/8
                  allowedModels: []
                  region: us-east-1
      responses:
        '201':
          description: Successfully created API Key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateLanguageModelAPIKeyResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      summary: List API keys
      description: |
        Lists all API keys for the given region in an organization.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      operationId: listModelAPIKeys
      tags:
        - Model Services API Keys (AI Services)
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/APIKeysSortBy'
        - $ref: '#/components/parameters/SortDirection'
        - $ref: '#/components/parameters/FilterByRegion'
      responses:
        '200':
          description: Successfully listed all the API keys.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListLanguageModelAPIKeysResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/aiServices/models/apiKeys/{apiKeyId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ModelAPIKeyId'
    get:
      summary: Get API Key
      description: |
        Returns an API Key for the given region in the organization by its ID.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      operationId: getModelAPIKey
      tags:
        - Model Services API Keys (AI Services)
      responses:
        '200':
          description: Successfully retrieved the API Key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLanguageModelAPIKeyResponse'
        '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 API key
      description: |
        Deletes an existing API Key for the given region in the organization.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      operationId: deleteModelAPIKey
      tags:
        - Model Services API Keys (AI Services)
      responses:
        '204':
          description: API key deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '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/{clusterId}/replications/{replicationId}:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/ReplicationId'
    get:
      summary: Get replication details
      description: |
        Fetches the details of the given replication.

        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:
        - Replications
      operationId: getReplication
      responses:
        '200':
          description: Replication detail response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReplicationResponse'
              examples:
                getReplication:
                  value:
                    id: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI=
                    status: running
                    changesLeft: 100
                    source:
                      project:
                        id: 44508406-5ef0-4b0b-be9f-f31dcc422ea0
                        name: SourceProject
                      cluster:
                        id: a86f56c2-c4b4-425c-8df6-fddd6e2c7ddb
                        name: SourceCluster
                      bucket:
                        id: dGVzdA
                        name: SourceBucket
                        conflictResolutionType: seqno
                      scopes:
                        - name: source-scope-1
                          collections:
                            - source-collection-1
                            - source-collection-2
                        - name: source-scope-2
                          collections:
                            - source-collection-3
                    target:
                      project:
                        id: 55619517-6fg1-5c1c-cf0g-g42edd533fb1
                        name: TargetProject
                      cluster:
                        id: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
                        name: TargetCluster
                      bucket:
                        id: dPVzdB
                        name: TargetBucket
                        conflictResolutionType: seqno
                      scopes:
                        - name: target-scope-2
                          collections:
                            - target-collection-2
                            - target-collection-4
                        - name: target-scope-3
                          collections:
                            - target-collection-5
                    mappings:
                      - sourceScope: source-scope-1
                        targetScope: target-scope-2
                        collections:
                          - sourceCollection: source-collection-1
                            targetCollection: target-collection-2
                          - sourceCollection: source-collection-2
                            targetCollection: target-collection-4
                      - sourceScope: source-scope-2
                        targetScope: target-scope-3
                        collections:
                          - sourceCollection: source-collection-3
                            targetCollection: target-collection-5
                    direction: oneWay
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56Z'
                getReplicationAllScopes:
                  value:
                    id: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI=
                    status: running
                    changesLeft: 100
                    source:
                      project:
                        id: 44508406-5ef0-4b0b-be9f-f31dcc422ea0
                        name: SourceProject
                      cluster:
                        id: a86f56c2-c4b4-425c-8df6-fddd6e2c7ddb
                        name: SourceCluster
                      bucket:
                        id: dGVzdA
                        name: SourceBucket
                        conflictResolutionType: seqno
                    target:
                      project:
                        id: 55619517-6fg1-5c1c-cf0g-g42edd533fb1
                        name: TargetProject
                      cluster:
                        id: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
                        name: TargetCluster
                      bucket:
                        id: dPVzdB
                        name: TargetBucket
                        conflictResolutionType: seqno
                    direction: oneWay
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56Z'
                getReplicationAllCollections:
                  value:
                    id: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI=
                    status: running
                    changesLeft: 100
                    source:
                      project:
                        id: 44508406-5ef0-4b0b-be9f-f31dcc422ea0
                        name: SourceProject
                      cluster:
                        id: a86f56c2-c4b4-425c-8df6-fddd6e2c7ddb
                        name: SourceCluster
                      bucket:
                        id: dGVzdA
                        name: SourceBucket
                        conflictResolutionType: seqno
                      scopes:
                        - name: source-scope-1
                        - name: source-scope-2
                    target:
                      project:
                        id: 55619517-6fg1-5c1c-cf0g-g42edd533fb1
                        name: TargetProject
                      cluster:
                        id: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
                        name: TargetCluster
                      bucket:
                        id: dPVzdB
                        name: TargetBucket
                        conflictResolutionType: seqno
                      scopes:
                        - name: target-scope-2
                        - name: target-scope-3
                    mappings:
                      - sourceScope: source-scope-1
                        targetScope: target-scope-2
                      - sourceScope: source-scope-2
                        targetScope: target-scope-3
                    direction: oneWay
                    audit:
                      createdBy: ffffffff-aaaa-1414-eeee-000000000000
                      createdAt: '2021-09-01T12:34:56Z'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      summary: Delete a replication
      description: |
        Deletes the specified replication.

        Note: Deleting an already-deleted replication returns a 404 Not Found.

        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:
        - Replications
      operationId: deleteReplication
      responses:
        '204':
          description: Replication deleted successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      summary: Update an existing replication
      description: |
        Update the configuration of an existing replication.

        **Update Behavior**:

        Only fields included in the request body will be updated. Omitted fields remain unchanged.

        **Note on Mappings**:

        When updating the mappings, you have three options:

        - **Keep current settings**: Omit the `mappings` field & `allScopes` field entirely
        - **Set explicit mappings**: Include `mappings` array with scope and/or collection definitions
        - **Replicate full bucket**: Include `allScopes: true` instead of mappings

        You cannot specify both `mappings` and `allScopes: true` in the same request.

        **Note on Filter Expression Updates**:

        When the `filter.expressions.regEx` value is updated, the user must explicitly set `filter.expressions.skipRestream` to indicate the desired behavior:

        - If `skipRestream` is `false` (default), the replication will be saved and restarted to apply the new filter expression to all data.
        - If `skipRestream` is `true`, the new filter expression will apply **only to new mutations**, and the replication will not be restarted.

        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). 
      operationId: updateReplication
      tags:
        - Replications
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateReplicationRequest'
            examples:
              updateReplication:
                value:
                  priority: high
                  networkUsageLimit: 100
                  filter:
                    documentExcludeOptions:
                      deletion: false
                      expiration: false
                      ttl: false
                      binary: false
                    expressions:
                      regEx: REGEXP_CONTAINS(country, "France")
                      skipRestream: false
                  mappings:
                    - sourceScope: source-scope-1
                      targetScope: target-scope-1
                      collections:
                        - sourceCollection: source-collection-1
                          targetCollection: target-collection-1
                        - sourceCollection: source-collection-2
                          targetCollection: target-collection-2
              updateReplicationAllScopes:
                value:
                  allScopes: true
              updateReplicationScopes:
                value:
                  mappings:
                    - sourceScope: source-scope-1
                      targetScope: target-scope-1
                      collections:
                        - sourceCollection: source-collection-1
                          targetCollection: target-collection-1
                        - sourceCollection: source-collection-2
                          targetCollection: target-collection-2
                    - sourceScope: source-scope-2
                      targetScope: target-scope-2
                      collections:
                        - sourceCollection: source-collection-3
                          targetCollection: target-collection-3
                        - sourceCollection: source-collection-4
                          targetCollection: target-collection-4
              updateReplicationAllFilters:
                value:
                  filter:
                    documentExcludeOptions:
                      deletion: false
                      expiration: true
                      ttl: false
                      binary: false
                    expressions:
                      regEx: REGEXP_CONTAINS(country, "France")
                      skipRestream: true
              updateReplicationFilterExpressions:
                value:
                  filter:
                    expressions:
                      regEx: REGEXP_CONTAINS(country, "France")
                      skipRestream: true
      responses:
        '204':
          description: Replication updated successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /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'
    get:
      summary: Get replication job details
      description: |
        Fetches the details of the given replication job.

        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:
        - Replications
      operationId: getReplicationJob
      responses:
        '200':
          description: Replication job detail response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetReplicationJobResponse'
        '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}/replications:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: List replications for a given cluster
      description: |
        Retrieves a paginated list of replications for the specified cluster. 

        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:
        - Replications
      operationId: listClusterReplications
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/ReplicationsSortBy'
        - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          description: List of replications for the cluster.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListClusterReplicationsResponse'
              examples:
                ListReplications:
                  $ref: '#/paths/~1v4~1organizations~1{organizationId}~1projects~1{projectId}~1replications/get/responses/200/content/application~1json/examples/ListReplications'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      summary: Create a new replication
      description: |
        Creates a new replication between a source and a target cluster within the specified organization and project.

        Note: Replication is created from the perspective of the source cluster. The clusterId in the path should refer to the source cluster.

        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). 
      operationId: createReplication
      tags:
        - Replications
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReplicationRequest'
            examples:
              createReplication:
                value:
                  sourceBucket: dGVzdA
                  target:
                    cluster: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
                    bucket: dPVzdB
                  mappings:
                    - sourceScope: source-scope-1
                      targetScope: target-scope-1
                      collections:
                        - sourceCollection: source-collection-1
                          targetCollection: target-collection-1
                        - sourceCollection: source-collection-2
                          targetCollection: target-collection-2
              createReplicationAsync:
                value:
                  sourceBucket: dGVzdA
                  mode: sync
                  target:
                    cluster: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
                    bucket: dPVzdB
                  mappings:
                    - sourceScope: source-scope-1
                      targetScope: target-scope-1
                      collections:
                        - sourceCollection: source-collection-1
                          targetCollection: target-collection-1
                        - sourceCollection: source-collection-2
                          targetCollection: target-collection-2
              createReplicationSync:
                value:
                  sourceBucket: dGVzdA
                  mode: sync
                  target:
                    cluster: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
                    bucket: dPVzdB
                  mappings:
                    - sourceScope: source-scope-1
                      targetScope: target-scope-1
                      collections:
                        - sourceCollection: source-collection-1
                          targetCollection: target-collection-1
                        - sourceCollection: source-collection-2
                          targetCollection: target-collection-2
              createReplicationAllScopes:
                value:
                  sourceBucket: dGVzdA
                  mode: sync
                  target:
                    cluster: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
                    bucket: dPVzdB
              createReplicationAllCollections:
                value:
                  sourceBucket: dGVzdA
                  mode: sync
                  target:
                    cluster: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
                    bucket: dPVzdB
                  mappings:
                    - sourceScope: source-scope-1
                      targetScope: target-scope-1
              createReplicationWithFilters:
                value:
                  sourceBucket: dGVzdA
                  mode: sync
                  target:
                    cluster: b95f56d2-d4c4-425c-8df6-eee7c2c8edab
                    bucket: dPVzdB
                  mappings:
                    - sourceScope: source-scope-1
                      targetScope: target-scope-1
                      collections:
                        - sourceCollection: source-collection-1
                          targetCollection: target-collection-1
                        - sourceCollection: source-collection-2
                          targetCollection: target-collection-2
                  filter:
                    documentExcludeOptions:
                      deletion: true
                      expiration: true
                      ttl: true
                      binary: true
                    expressions:
                      regEx: REGEXP_CONTAINS(country, "France")
              createReplicationSelfManagedTarget:
                value:
                  sourceBucket: dGVzdA
                  mode: sync
                  target:
                    cluster: remote-cluster-name
                    bucket: remote-bucket-name
                    type: external
      responses:
        '201':
          description: Replication created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateReplicationJSONResponse'
              examples:
                createReplicationResponse:
                  value:
                    replicationId: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI=
                    reverseReplicationId: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI=
        '202':
          description: Replication creation started asynchronously.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateReplicationResponseAsync'
              examples:
                createReplicationAsyncResponse:
                  value:
                    jobId: a83d322a-8350-4e77-8708-2b4e961a4259
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/replications:
    get:
      summary: List replications for a given project
      description: |
        Retrieves a paginated list of replications for the specified 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:
        - Replications
      operationId: listProjectReplications
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PerPage'
        - $ref: '#/components/parameters/ReplicationsSortBy'
        - $ref: '#/components/parameters/SortDirection'
        - $ref: '#/components/parameters/OrganizationId'
        - $ref: '#/components/parameters/ProjectId'
      responses:
        '200':
          description: List of replications for the project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProjectReplicationsResponse'
              examples:
                ListReplications:
                  value:
                    data:
                      - id: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDEvdGVzdDI=
                        sourceCluster: ClusterA
                        targetCluster: ClusterB
                        status: running
                        direction: oneWay
                        audit:
                          createdBy: ffffffff-aaaa-1414-eeee-000000000000
                          createdAt: '2021-09-01T12:34:56Z'
                      - id: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDMvdGVzdDQ=
                        sourceCluster: ClusterA
                        targetCluster: ClusterB
                        status: paused
                        direction: twoWay
                        audit:
                          createdBy: ffffffff-aaaa-1414-eeee-000000000000
                          createdAt: '2021-09-01T13:45:30Z'
                      - id: MDIwN23ewrerfetrmZmUzYzExYTcxMTA4MjJkYjJiNmYvdGVzdDUvdGVzdDY=
                        sourceCluster: ClusterA
                        targetCluster: ClusterB
                        status: pending
                        direction: oneWay
                        audit:
                          createdBy: ffffffff-aaaa-1414-eeee-000000000000
                          createdAt: '2021-09-01T15:10:22Z'
                    cursor:
                      hrefs: {}
                      pages:
                        last: 1
                        page: 1
                        perPage: 5
                        totalItems: 3
        '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}/replications/{replicationId}/activationStatus:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/ReplicationId'
    delete:
      summary: Pause a replication
      description: |
        Deactivates (pauses) a running replication.

        Note: Pausing a replication that is not in a valid state returns a 409 Conflict.

        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). 
      operationId: pauseReplication
      tags:
        - Replications
      responses:
        '204':
          description: Replication paused successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      summary: Resume a replication
      description: |
        Resumes a paused replication.

        Note: Resuming a replication that is not in a valid state returns a 409 Conflict.

        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). 
      operationId: resumeReplication
      tags:
        - Replications
      responses:
        '204':
          description: Replication resumed successfully.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/AccessForbidden'
        '404':
          $ref: '#/components/responses/ResourceNotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableContent'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v4/organizations/{organizationId}/projects/{projectId}/clusters/{clusterId}/dataAPI:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    put:
      summary: Update Data API
      description: |
        Enable or disable Data API on your cluster. Additional charges will be incurred when this feature is enabled. Enabling data API is an asynchronous call and can take several minutes depending on the CSP.

        You can also enable network peering when enabling Data API.  If network peering is enabled, please complete setup by using commands returned in GET /networkPeers/{peerId} endpoint.

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

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Data API
      operationId: updateDataApiAndPeering
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - enableDataApi
                - enableNetworkPeering
              properties:
                enableDataApi:
                  type: boolean
                  description: enable or disable Data API for the cluster.
                  example: true
                  default: false
                enableNetworkPeering:
                  type: boolean
                  description: enable or disable network peering when Data API is enabled.
                  example: true
                  default: false
      responses:
        '202':
          description: Successfully submitted request to enable Data API.  Use the GET /dataAPI endpoint to monitor the status of the request.
        '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'
    get:
      summary: Get Data API Status
      description: |
        Get the status of Data API and network peering on your 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:
        - Data API
      operationId: getDataAPIStatus
      responses:
        '200':
          description: Successfully retrieved data API and network peering status of cluster.
          content:
            application/json:
              schema:
                type: object
                required:
                  - enabled
                  - state
                  - enabledForNetworkPeering
                  - stateForNetworkPeering
                  - connectionString
                properties:
                  enabled:
                    type: boolean
                    description: |
                      Indicates whether Data API is enabled or disabled on the cluster.
                    example: true
                  state:
                    type: string
                    description: |
                      Current status of the Data API.  Here are the possible values:

                        - `enabled`: Data API is active and fully functional
                        - `enabling`: Data API is in the process of being enabled
                        - `disabled`: Data API is not enabled with no infrastructure being deployed for it at the moment
                        - `disabling`: Data API is in the process of being disabled
                        - `configuring`: Data API is in the process of being configured, thus here should not be any downtime for existing clients,
                                         but new functionality like network peering will not be available until status is enabled
                    enum:
                      - enabled
                      - disabled
                      - enabling
                      - disabling
                      - configuring
                    example: enabled
                  enabledForNetworkPeering:
                    type: boolean
                    description: |
                      Whether network peering was enabled or disabled for the Data API.
                    example: true
                  stateForNetworkPeering:
                    type: string
                    description: |
                      Current status for vpc peering for Data API.  Here are the possible values:

                        - `enabled`: network peering it is currently enabled
                        - `enabling`: network peering is in the process of being enabled
                        - `disabled`: network peering it is not enabled with no infrastructure being deployed for it at the moment
                        - `disabling`: network peering is in the process of being disabled
                    enum:
                      - enabled
                      - enabling
                      - disabled
                      - disabling
                    example: enabled
                  connectionString:
                    type: string
                    description: |
                      The connection string for the Data API service. If the Data API is not enabled, this will be an empty string.
                    example: https://dpmr2ygad6rwzvsf.data.cloud.couchbase.com
        '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}/dataAPI/privateEndpointCommand:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    post:
      summary: Get CLI Commands For Setting Up Private Endpoint Connection
      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 Data API Endpoint.
        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
        ```

        An example for Azure:

        ```
        az network private-endpoint create \
          --connection-name connection-1 \
          --name private-endpoint \
          --private-connection-resource-id svc-1 \
          --resource-group test-rg \
          --subnet subnet-1 \
          --group-id sites \
          --vnet-name vnet-1
        ```

        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:
        - Data API
      operationId: getDataAPIPrivateEndpointCommand
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateVPCEndpointCommandRequest'
                - $ref: '#/components/schemas/CreateAzurePrivateEndpointCommandRequest'
            examples:
              PostAWSCommandRequest:
                value:
                  vpcID: vpc-1234
                  subnetIDs:
                    - subnet-1234
              PostAzureCommandRequest:
                value:
                  resourceGroupName: test-rg
                  virtualNetwork: vnet-1/subnet-1
      responses:
        '200':
          description: Successfully returned command to establish a private connection to Data API endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePrivateEndpointCommandResponse'
        '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}/dataAPI/privateEndpoints:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
    get:
      summary: List Data API Private Endpoints
      description: |
        Returns a list of Data API private endpoints associated with your Capella cluster, along
        with the endpoint state. Each private endpoint connects a private network to Data API on a Capella 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 Creator
          - Project Viewer

        To learn more, see [Organization, Project, and Database Access Overview](https://docs.couchbase.com/cloud/organizations/organization-projects-overview.html).
      tags:
        - Data API
      operationId: listDataAPIPrivateEndpoints
      responses:
        '200':
          description: Successfully retrieved list of Data API private endpoints.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPrivateEndpointsResponse'
        '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}/dataAPI/privateEndpoints/{endpointId}/associate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/EndpointID'
    post:
      summary: Accept Data API Private Endpoint Connection
      description: |
        Accept a new private endpoint connection request so that it is associated with the Data API. Once accepted, the private endpoint is available for use.

        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:
        - Data API
      operationId: associateDataAPIPrivateEndpointRequest
      responses:
        '204':
          description: Successfully associated private endpoint.
        '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}/clusters/{clusterId}/dataAPI/privateEndpoints/{endpointId}/unassociate:
    parameters:
      - $ref: '#/components/parameters/OrganizationId'
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ClusterId'
      - $ref: '#/components/parameters/EndpointID'
    post:
      summary: Disassociate Data API Private Endpoint
      description: |
        Removes or disassociates the private endpoint. If the private endpoint connection has still not yet been accepted, the request is rejected.
        Turning off the cluster will not automatically remove any of the Data API Endpoints and the endpoints will be available when cluster is turned back on. If you remove the private endpoint before turning off a cluster, you must associate it back again with data api is turned back on.
        Retaining private endpoints when cluster is off does not result in any additional charges beyond the cost of enabling Data API.

        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:
        - Data API
      operationId: disassociateDataAPIPrivateEndpoint
      responses:
        '204':
          description: Successfully disassociated private endpoint.
        '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'
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
x-tagGroups:
  - name: Capella Operational
    tags:
      - Alert Integration
      - Allowed CIDRs (App Services)
      - Allowed CIDRs (Cluster)
      - Api Keys
      - App Endpoints
      - App Services
      - App Services Audit Logging
      - App Services Log Streaming
      - App Services Private Endpoints
      - Audit Logs
      - Backup Schedule (Bucket)
      - Backups & Restore (Bucket)
      - Billing
      - Buckets, Scopes, & Collections
      - Certificates
      - Cloud Snapshot Backups & Restore
      - Cloud Snapshot Backups Schedule
      - Clusters
      - CMEK
      - Data API
      - Database Credentials
      - Events
      - Free Tier
      - Mutual TLS
      - Network Peers
      - On/Off Schedule
      - Organizations
      - Private Endpoint Service
      - Projects
      - Query Indexes
      - Replications
      - Sample Bucket
      - Users
  - name: Capella AI Services
    tags:
      - AI Services Providers
      - AI Workflows
      - Model Services API Keys (AI Services)
      - Models (AI Services)
