{
  "openapi": "3.0.0",
  "info": {
    "contact": {
      "email": "support@cockroachlabs.com",
      "name": "Cockroach Labs Support",
      "url": "https://support.cockroachlabs.com"
    },
    "description": "This is a preview version of the Cloud API. The interface and output is subject to change, and there may be bugs.",
    "title": "CockroachDB Cloud API",
    "version": "2022-09-20"
  },
  "servers": [
    {
      "url": "https://cockroachlabs.cloud"
    }
  ],
  "paths": {
    "/api/v1/cluster-versions": {
      "get": {
        "operationId": "CockroachCloud_ListMajorClusterVersions",
        "summary": "List available major cluster versions",
        "description": "Sort order: Version number descending",
        "parameters": [
          {
            "name": "pagination.page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pagination.as_of_time",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "pagination.sort_order",
            "in": "query",
            "description": " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListMajorClusterVersionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://cockroachlabs.cloud/api/v1/cluster-versions?pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/clusters": {
      "get": {
        "operationId": "CockroachCloud_ListClusters",
        "summary": "List clusters owned by an organization",
        "description": "Sort order: Cluster name",
        "parameters": [
          {
            "name": "show_inactive",
            "in": "query",
            "description": "If `true`, show clusters that have been deleted or failed to initialize.",
            "schema": {
              "type": "boolean",
              "default": "false"
            }
          },
          {
            "name": "pagination.page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pagination.as_of_time",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "pagination.sort_order",
            "in": "query",
            "description": " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListClustersResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://cockroachlabs.cloud/api/v1/clusters?show_inactive=SOME_BOOLEAN_VALUE&pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_CreateCluster",
        "summary": "Create and initialize a new cluster",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateClusterRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cluster"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"name\":\"test-cluster\",\"provider\":\"GCP\",\"spec\":{\"serverless\":{\"regions\":[\"us-central1\"],\"spend_limit\":0}}}'"
          }
        ]
      }
    },
    "/api/v1/clusters/available-regions": {
      "get": {
        "operationId": "CockroachCloud_ListAvailableRegions",
        "summary": "List the regions available for new clusters and nodes",
        "description": "Sort order: Distance (based on client IP address)",
        "parameters": [
          {
            "name": "provider",
            "in": "query",
            "description": "Optional CloudProvider for filtering.\n\n - GCP: The Google Cloud Platform cloud provider.\n - AWS: The Amazon Web Services cloud provider.",
            "schema": {
              "type": "string",
              "enum": [
                "GCP",
                "AWS"
              ]
            }
          },
          {
            "name": "serverless",
            "in": "query",
            "description": "Optional filter to only show regions available for serverless clusters.",
            "schema": {
              "type": "boolean",
              "default": "false"
            }
          },
          {
            "name": "pagination.page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pagination.as_of_time",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "pagination.sort_order",
            "in": "query",
            "description": " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListAvailableRegionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://cockroachlabs.cloud/api/v1/clusters/available-regions?provider=SOME_STRING_VALUE&serverless=SOME_BOOLEAN_VALUE&pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}": {
      "delete": {
        "operationId": "CockroachCloud_DeleteCluster",
        "summary": "Delete a cluster and all of its data",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cluster"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "get": {
        "operationId": "CockroachCloud_GetCluster",
        "summary": "Get extended information about a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cluster"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "patch": {
        "operationId": "CockroachCloud_UpdateCluster",
        "summary": "Scale or edit a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateClusterSpecification"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Cluster"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"dedicated\":{\"hardware\":{\"machine_spec\":{\"machine_type\":\"n2-standard-8\"}},\"region_nodes\":{\"us-central1\":5,\"us-west1\":3}},\"upgrade_status\":\"UPGRADE_RUNNING\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/client-ca-cert": {
      "delete": {
        "operationId": "CockroachCloud_DeleteClientCACert",
        "summary": "Delete Client CA Cert for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientCACertInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/client-ca-cert \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "get": {
        "operationId": "CockroachCloud_GetClientCACert",
        "summary": "Get Client CA Cert information for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientCACertInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/client-ca-cert \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "patch": {
        "operationId": "CockroachCloud_UpdateClientCACert",
        "summary": "Update Client CA Cert for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "x509_pem_cert": {
                    "type": "string"
                  }
                },
                "example": {
                  "x509_pem_cert": "-----BEGIN CERTIFICATE-----..."
                },
                "title": "UpdateClientCACertRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientCACertInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/client-ca-cert \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"x509_pem_cert\":\"-----BEGIN CERTIFICATE-----...\"}'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_SetClientCACert",
        "summary": "Set Client CA Cert for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "x509_pem_cert": {
                    "type": "string"
                  }
                },
                "example": {
                  "x509_pem_cert": "-----BEGIN CERTIFICATE-----..."
                },
                "required": [
                  "x509_pem_cert"
                ],
                "title": "SetClientCACertRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientCACertInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/client-ca-cert \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"x509_pem_cert\":\"-----BEGIN CERTIFICATE-----...\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/cmek": {
      "get": {
        "operationId": "CockroachCloud_GetCMEKClusterInfo",
        "summary": "Get CMEK-related information for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CMEKClusterInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/cmek \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "patch": {
        "operationId": "CockroachCloud_UpdateCMEKStatus",
        "summary": "Update the CMEK-related status for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "$ref": "#/components/schemas/CMEKCustomerAction"
                  }
                },
                "example": {
                  "action": "REVOKE"
                },
                "required": [
                  "action"
                ],
                "title": "UpdateCMEKStatusRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CMEKClusterInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/cmek \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"action\":\"REVOKE\"}'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_EnableCMEKSpec",
        "summary": "Enable CMEK for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "region_specs": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/CMEKRegionSpecification"
                    }
                  }
                },
                "example": {
                  "region_specs": [
                    {
                      "key_spec": {
                        "auth_principal": "arn:aws:iam::account:role/role-name-with-path",
                        "type": "AWS_KMS",
                        "uri": "arn:aws:kms:us-west-2:111122223333:key/id-of-kms-key"
                      },
                      "region": "us-central1"
                    }
                  ]
                },
                "required": [
                  "region_specs"
                ],
                "title": "CMEKClusterSpecification"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CMEKClusterInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/cmek \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --data '{\"region_specs\":[{\"key_spec\":{\"auth_principal\":\"arn:aws:iam::account:role/role-name-with-path\",\"type\":\"AWS_KMS\",\"uri\":\"arn:aws:kms:us-west-2:111122223333:key/id-of-kms-key\"},\"region\":\"us-central1\"}]}'"
          }
        ]
      },
      "put": {
        "operationId": "CockroachCloud_UpdateCMEKSpec",
        "summary": "Enable or update the CMEK spec for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "region_specs": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/CMEKRegionSpecification"
                    }
                  }
                },
                "example": {
                  "region_specs": [
                    {
                      "key_spec": {
                        "auth_principal": "arn:aws:iam::account:role/role-name-with-path",
                        "type": "AWS_KMS",
                        "uri": "arn:aws:kms:us-west-2:111122223333:key/id-of-kms-key"
                      },
                      "region": "us-central1"
                    }
                  ]
                },
                "required": [
                  "region_specs"
                ],
                "title": "CMEKClusterSpecification"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CMEKClusterInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PUT \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/cmek \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --data '{\"region_specs\":[{\"key_spec\":{\"auth_principal\":\"arn:aws:iam::account:role/role-name-with-path\",\"type\":\"AWS_KMS\",\"uri\":\"arn:aws:kms:us-west-2:111122223333:key/id-of-kms-key\"},\"region\":\"us-central1\"}]}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/connection-string": {
      "get": {
        "operationId": "CockroachCloud_GetConnectionString",
        "summary": "Get a formatted generic connection string for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "database",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "defaultdb"
            }
          },
          {
            "name": "sql_user",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "os",
            "in": "query",
            "description": "os indicates the target operating system, used with formatting the default SSL certificate path.\nRequired only for dedicated clusters.",
            "schema": {
              "type": "string",
              "enum": [
                "OS_MAC",
                "OS_LINUX",
                "OS_WINDOWS"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetConnectionStringResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/connection-string?database=SOME_STRING_VALUE&sql_user=SOME_STRING_VALUE&os=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/databases": {
      "get": {
        "operationId": "CockroachCloud_ListDatabases",
        "summary": "List databases for a cluster",
        "description": "Sort order: Database name ascending",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pagination.as_of_time",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "pagination.sort_order",
            "in": "query",
            "description": " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/api.ListDatabasesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/databases?pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "patch": {
        "operationId": "CockroachCloud_EditDatabase2",
        "summary": "Update a database",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "new_name": {
                    "type": "string"
                  }
                },
                "example": {
                  "name": "example_database_name",
                  "new_name": "example_new_database_name"
                },
                "required": [
                  "new_name",
                  "name"
                ],
                "title": "UpdateDatabaseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/api.Database"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/databases \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"name\":\"example_database_name\",\"new_name\":\"example_new_database_name\"}'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_CreateDatabase",
        "summary": "Create a new database",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  }
                },
                "example": {
                  "name": "example_database_name"
                },
                "required": [
                  "name"
                ],
                "title": "CreateDatabaseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/api.Database"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/databases \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"name\":\"example_database_name\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/databases/{name}": {
      "delete": {
        "operationId": "CockroachCloud_DeleteDatabase",
        "summary": "Delete a database",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/api.Database"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/databases/{name} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "patch": {
        "operationId": "CockroachCloud_EditDatabase",
        "summary": "Update a database",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "new_name": {
                    "type": "string"
                  }
                },
                "example": {
                  "name": "example_database_name",
                  "new_name": "example_new_database_name"
                },
                "required": [
                  "new_name"
                ],
                "title": "UpdateDatabaseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/api.Database"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/databases/{name} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"name\":\"example_database_name\",\"new_name\":\"example_new_database_name\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/logexport": {
      "delete": {
        "operationId": "CockroachCloud_DeleteLogExport",
        "summary": "Delete the Log Export configuration for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogExportClusterInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/logexport \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "get": {
        "operationId": "CockroachCloud_GetLogExportInfo",
        "summary": "Get the Log Export configuration for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogExportClusterInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/logexport \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_EnableLogExport",
        "summary": "Create or update the Log Export configuration for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "auth_principal": {
                    "description": "auth_principal is either the AWS Role ARN that identifies a role\nthat the cluster account can assume to write to CloudWatch or the\nGCP Project ID that the cluster service account has permissions to\nwrite to for cloud logging.",
                    "type": "string"
                  },
                  "groups": {
                    "description": "groups is a collection of log group configurations that allows the\ncustomer to define collections of CRDB log channels that are aggregated\nseparately at the target sink.",
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/LogExportGroup"
                    }
                  },
                  "log_name": {
                    "description": "log_name is an identifier for the logs in the customer's log sink.",
                    "type": "string"
                  },
                  "redact": {
                    "description": "redact allows the customer to set a default redaction policy for\nlogs before they are exported to the target sink. If a group config\nomits a redact flag and this one is set to `true`, then that group\nwill receive redacted logs.",
                    "type": "boolean"
                  },
                  "region": {
                    "description": "region allows the customer to override the destination region for\nall logs for a cluster.",
                    "type": "string"
                  },
                  "type": {
                    "$ref": "#/components/schemas/LogExportType"
                  }
                },
                "example": {
                  "auth_principal": "my-gcp-project-id",
                  "groups": [
                    {
                      "channels": [
                        "OPS",
                        "HEALTH"
                      ],
                      "log_name": "devops",
                      "min_level": "WARNING"
                    }
                  ],
                  "log_name": "default",
                  "redact": true,
                  "type": "GCP_CLOUD_LOGGING"
                },
                "required": [
                  "type",
                  "log_name",
                  "auth_principal"
                ],
                "title": "EnableLogExportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogExportClusterInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/logexport \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"auth_principal\":\"my-gcp-project-id\",\"groups\":[{\"channels\":[\"OPS\",\"HEALTH\"],\"log_name\":\"devops\",\"min_level\":\"WARNING\"}],\"log_name\":\"default\",\"redact\":true,\"type\":\"GCP_CLOUD_LOGGING\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/metricexport/cloudwatch": {
      "delete": {
        "operationId": "CockroachCloud_DeleteCloudWatchMetricExport",
        "summary": "Delete the CloudWatch Metric Export configuration for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteMetricExportResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/metricexport/cloudwatch \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "get": {
        "operationId": "CockroachCloud_GetCloudWatchMetricExportInfo",
        "summary": "Get the CloudWatch Metric Export configuration for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloudWatchMetricExportInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/metricexport/cloudwatch \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_EnableCloudWatchMetricExport",
        "summary": "Create or update the CloudWatch Metric Export configuration for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "log_group_name": {
                    "description": "log_group_name is the customized log group name.",
                    "type": "string"
                  },
                  "role_arn": {
                    "description": "role_arn is the IAM role used to upload metric segments to the\ntarget AWS account.",
                    "type": "string"
                  },
                  "target_region": {
                    "description": "target_region specifies the specific AWS region that the metrics will\nbe exported to.",
                    "type": "string"
                  }
                },
                "example": {
                  "log_group_name": "example",
                  "role_arn": "arn:aws:iam::account:role/ExampleRole",
                  "target_region": "us-east-1"
                },
                "required": [
                  "role_arn"
                ],
                "title": "EnableCloudWatchMetricExportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CloudWatchMetricExportInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/metricexport/cloudwatch \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"log_group_name\":\"example\",\"role_arn\":\"arn:aws:iam::account:role/ExampleRole\",\"target_region\":\"us-east-1\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/metricexport/datadog": {
      "delete": {
        "operationId": "CockroachCloud_DeleteDatadogMetricExport",
        "summary": "Delete the Datadog Metric Export configuration for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteMetricExportResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/metricexport/datadog \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "get": {
        "operationId": "CockroachCloud_GetDatadogMetricExportInfo",
        "summary": "Get the Datadog Metric Export configuration for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatadogMetricExportInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/metricexport/datadog \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_EnableDatadogMetricExport",
        "summary": "Create or update the Datadog Metric Export configuration for a cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "api_key": {
                    "description": "api_key is a Datadog API key.",
                    "type": "string"
                  },
                  "site": {
                    "$ref": "#/components/schemas/api.DatadogSite"
                  }
                },
                "example": {
                  "api_key": "datadog_api_key",
                  "site": "US1"
                },
                "required": [
                  "site",
                  "api_key"
                ],
                "title": "EnableDatadogMetricExportRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DatadogMetricExportInfo"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/metricexport/datadog \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"api_key\":\"datadog_api_key\",\"site\":\"US1\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/networking/allowlist": {
      "get": {
        "operationId": "CockroachCloud_ListAllowlistEntries",
        "summary": "Get the IP allowlist and propagation status for a cluster",
        "description": "Sort order: CIDR address",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pagination.as_of_time",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "pagination.sort_order",
            "in": "query",
            "description": " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListAllowlistEntriesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/allowlist?pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_AddAllowlistEntry",
        "summary": "Add a new CIDR address to the IP allowlist",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AllowlistEntry"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowlistEntry"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/allowlist \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"cidr_ip\":\"192.168.1.1\",\"cidr_mask\":32,\"name\":\"Example\",\"sql\":true,\"ui\":true}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/networking/allowlist/{cidr_ip}/{cidr_mask}": {
      "delete": {
        "operationId": "CockroachCloud_DeleteAllowlistEntry",
        "summary": "Delete an IP allowlist entry",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cidr_ip",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cidr_mask",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowlistEntry"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/allowlist/{cidr_ip}/{cidr_mask} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/networking/allowlist/{entry.cidr_ip}/{entry.cidr_mask}": {
      "patch": {
        "operationId": "CockroachCloud_UpdateAllowlistEntry",
        "summary": "Update an IP allowlist entry",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entry.cidr_ip",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entry.cidr_mask",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "AllowlistEntry",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "sql": {
                    "type": "boolean"
                  },
                  "ui": {
                    "type": "boolean"
                  }
                },
                "example": {
                  "cidr_ip": "192.168.1.1",
                  "cidr_mask": 32,
                  "name": "Example",
                  "sql": true,
                  "ui": true
                },
                "required": [
                  "ui",
                  "sql"
                ],
                "title": "AllowlistEntry"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowlistEntry"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/allowlist/{entry.cidr_ip}/{entry.cidr_mask} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --data '{\"cidr_ip\":\"192.168.1.1\",\"cidr_mask\":32,\"name\":\"Example\",\"sql\":true,\"ui\":true}'"
          }
        ]
      },
      "put": {
        "operationId": "CockroachCloud_AddAllowlistEntry2",
        "summary": "Add a new CIDR address to the IP allowlist",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entry.cidr_ip",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entry.cidr_mask",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "AllowlistEntry",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "sql": {
                    "type": "boolean"
                  },
                  "ui": {
                    "type": "boolean"
                  }
                },
                "example": {
                  "cidr_ip": "192.168.1.1",
                  "cidr_mask": 32,
                  "name": "Example",
                  "sql": true,
                  "ui": true
                },
                "required": [
                  "ui",
                  "sql"
                ],
                "title": "AllowlistEntry"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllowlistEntry"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PUT \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/allowlist/{entry.cidr_ip}/{entry.cidr_mask} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --data '{\"cidr_ip\":\"192.168.1.1\",\"cidr_mask\":32,\"name\":\"Example\",\"sql\":true,\"ui\":true}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/networking/aws-endpoint-connections": {
      "get": {
        "operationId": "CockroachCloud_ListAwsEndpointConnections",
        "summary": "Lists all AwsEndpointConnections for a given cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "description": "cluster_id is the ID for the cluster.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AwsEndpointConnections"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/aws-endpoint-connections \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/networking/aws-endpoint-connections/{endpoint_id}": {
      "patch": {
        "operationId": "CockroachCloud_SetAwsEndpointConnectionState",
        "summary": "Sets the AWS Endpoint Connection state based on what is passed in the body",
        "description": "The \"status\" in the returned proto does not reflect the latest post-update\nstatus, but rather the status before the state is transitioned.",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "description": "cluster_id is the ID for the cluster.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endpoint_id",
            "in": "path",
            "description": "endpoint_id is the ID for the VPC endpoint on the customer's side.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "$ref": "#/components/schemas/AWSEndpointConnectionStatus"
                  }
                },
                "example": {
                  "status": "ENDPOINT_AVAILABLE"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AwsEndpointConnection"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/aws-endpoint-connections/{endpoint_id} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"status\":\"ENDPOINT_AVAILABLE\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/networking/egress-rules": {
      "get": {
        "operationId": "CockroachCloud_ListEgressRules",
        "summary": "List all egress rules associates with a cluster",
        "description": "Sort order: Name",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "description": "cluster_id identifies the CockroachDB cluster owning the set of returned\negress rules.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pagination.as_of_time",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "pagination.sort_order",
            "in": "query",
            "description": " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEgressRulesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/egress-rules?pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_AddEgressRule",
        "summary": "Add an egress rule",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "description": "cluster_id identifies the cluster to which this egress rule applies.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "description": "AddEgressRuleRequest is the input for the rpc AddEgressRule().",
                "type": "object",
                "properties": {
                  "description": {
                    "description": "description is text that serves to document the rules purpose.",
                    "type": "string"
                  },
                  "destination": {
                    "description": "destination is the endpoint (or subnetwork if CIDR) to which traffic is\nallowed.",
                    "type": "string"
                  },
                  "idempotency_key": {
                    "description": "idempotency_key uniquely identifies this request. If not set, it will be\nset by the server.",
                    "type": "string"
                  },
                  "name": {
                    "description": "name is the name of the egress rule.",
                    "type": "string"
                  },
                  "paths": {
                    "description": "paths are the allowed URL paths. If empty, all paths are allowed. Only\nvalid if Type=\"FQDN\".",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ports": {
                    "description": "ports are the allowed ports for TCP protocol. If Empty, all ports are\nallowed.",
                    "type": "array",
                    "items": {
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "type": {
                    "description": "type classifies the Destination field. Valid types include: \"FQDN\",\n\"CIDR\".",
                    "type": "string"
                  }
                },
                "example": {
                  "cluster_id": "35c4abb2-bb66-46d7-afed-25ebef5ed100",
                  "description": "egress for GCP storage buckets",
                  "destination": "storage.googleapis.com",
                  "name": "roach-buckets",
                  "paths": [
                    "/customer-managed-bucket-1/*",
                    "/customer-managed-bucket-2/*"
                  ],
                  "ports": [
                    443,
                    80
                  ],
                  "type": "FQDN"
                },
                "required": [
                  "name",
                  "type",
                  "destination",
                  "description"
                ],
                "title": "AddEgressRuleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddEgressRuleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/egress-rules \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"cluster_id\":\"35c4abb2-bb66-46d7-afed-25ebef5ed100\",\"description\":\"egress for GCP storage buckets\",\"destination\":\"storage.googleapis.com\",\"name\":\"roach-buckets\",\"paths\":[\"/customer-managed-bucket-1/*\",\"/customer-managed-bucket-2/*\"],\"ports\":[443,80],\"type\":\"FQDN\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/networking/egress-rules/egress-traffic-policy": {
      "post": {
        "operationId": "CockroachCloud_SetEgressTrafficPolicy",
        "summary": "Outbound traffic management",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "description": "cluster_id identifies the cluster whose egress policy will be updated.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "description": "SetEgressTrafficPolicyRequest is the input for the SetEgressTrafficPolicy RPC.",
                "type": "object",
                "properties": {
                  "allow_all": {
                    "description": "allow_all, if true results in unrestricted egress traffic. If false, egress\ntraffic is set to default-deny and is managed via the Egress Rule\nManagement API.",
                    "type": "boolean"
                  },
                  "idempotency_key": {
                    "description": "idempotency_key uniquely identifies this request. If not set, it will be\nset by the server.",
                    "type": "string"
                  }
                },
                "required": [
                  "allow_all"
                ],
                "title": "SetEgressTrafficPolicyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/egress-rules/egress-traffic-policy \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"allow_all\":true,\"idempotency_key\":\"string\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/networking/egress-rules/{rule_id}": {
      "delete": {
        "operationId": "CockroachCloud_DeleteEgressRule",
        "summary": "Delete an existing egress rule",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "description": "cluster_id uniquely identifies the cluster owning the egress rule.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rule_id",
            "in": "path",
            "description": "rule_id is the UUID of an existing egress rule. This field is required.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "idempotency_key",
            "in": "query",
            "description": "idempotency_key uniquely identifies this request. If not set, it will be\nset by the server.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteEgressRuleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url 'https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/egress-rules/{rule_id}?idempotency_key=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "get": {
        "operationId": "CockroachCloud_GetEgressRule",
        "summary": "Get an existing egress rule",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "description": "cluster_id uniquely identifies the cluster owning the egress rule.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rule_id",
            "in": "path",
            "description": "rule_id is the UUID of an existing egress rule.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEgressRuleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/egress-rules/{rule_id} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "patch": {
        "operationId": "CockroachCloud_EditEgressRule",
        "summary": "Edit an existing egress rule",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "description": "cluster_id uniquely identifies the cluster owning the egress rule.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rule_id",
            "in": "path",
            "description": "rule_id is the UUID of an existing egress rule. This field is required.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "description": "EditEgressRuleRequest is the input message to the EditEgressRule RPC.",
                "type": "object",
                "properties": {
                  "description": {
                    "description": "description is text that serves to document the rules purpose.",
                    "type": "string"
                  },
                  "destination": {
                    "description": "destination is a CIDR range or fully-qualified domain name to which\noutgoing traffic should be allowed. This field is required.",
                    "type": "string"
                  },
                  "idempotency_key": {
                    "description": "idempotency_key uniquely identifies this request. If not set, it will be\nset by the server.",
                    "type": "string"
                  },
                  "paths": {
                    "description": "paths are the allowed URL paths. If empty, all paths are allowed. Only\nvalid if Type=\"FQDN\".",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "ports": {
                    "description": "ports are the allowed ports for TCP protocol. If empty, all ports are\nallowed.",
                    "type": "array",
                    "items": {
                      "format": "int32",
                      "type": "integer"
                    }
                  },
                  "type": {
                    "description": "type is the destination type of this rule. Example values are\nFQDN or CIDR. This field is required.",
                    "type": "string"
                  }
                },
                "example": {
                  "cluster_id": "35c4abb2-bb66-46d7-afed-25ebef5ed100",
                  "ports": [
                    443,
                    80
                  ],
                  "rule_id": "35c4abb2-bb66-46d7-afed-25ebef5ed2aa"
                },
                "title": "EditEgressRuleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EditEgressRuleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PATCH \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/egress-rules/{rule_id} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"cluster_id\":\"35c4abb2-bb66-46d7-afed-25ebef5ed100\",\"ports\":[443,80],\"rule_id\":\"35c4abb2-bb66-46d7-afed-25ebef5ed2aa\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/networking/private-endpoint-services": {
      "get": {
        "operationId": "CockroachCloud_ListPrivateEndpointServices",
        "summary": "Lists all PrivateEndpointServices for a given cluster",
        "description": "The internal_dns property from the regions field in the ListClusters response can be used to connect to PrivateEndpointServices.",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "description": "cluster_id is the ID for the cluster.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrivateEndpointServices"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/private-endpoint-services \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_CreatePrivateEndpointServices",
        "summary": "Creates all PrivateEndpointServices for a given cluster",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "description": "cluster_id is the ID for the cluster.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrivateEndpointServices"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/networking/private-endpoint-services \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/nodes": {
      "get": {
        "operationId": "CockroachCloud_ListClusterNodes",
        "summary": "List nodes for a cluster",
        "description": "Sort order: Region name, node name",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "region_name",
            "in": "query",
            "description": "Optional filter to limit response to a single region.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pagination.as_of_time",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "pagination.sort_order",
            "in": "query",
            "description": " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListClusterNodesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/nodes?region_name=SOME_STRING_VALUE&pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/sql-users": {
      "get": {
        "operationId": "CockroachCloud_ListSQLUsers",
        "summary": "List SQL users for a cluster",
        "description": "Sort order: Username",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pagination.as_of_time",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "pagination.sort_order",
            "in": "query",
            "description": " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSQLUsersResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/sql-users?pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_CreateSQLUser",
        "summary": "Create a new SQL user",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string"
                  }
                },
                "example": {
                  "name": "example_username",
                  "password": "example_password"
                },
                "required": [
                  "name",
                  "password"
                ],
                "title": "CreateSQLUserRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SQLUser"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/sql-users \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"name\":\"example_username\",\"password\":\"example_password\"}'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/sql-users/{name}": {
      "delete": {
        "operationId": "CockroachCloud_DeleteSQLUser",
        "summary": "Delete a SQL user",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SQLUser"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/sql-users/{name} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/clusters/{cluster_id}/sql-users/{name}/password": {
      "put": {
        "operationId": "CockroachCloud_UpdateSQLUserPassword",
        "summary": "Update a SQL user's password",
        "parameters": [
          {
            "name": "cluster_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "password": {
                    "type": "string"
                  }
                },
                "example": {
                  "password": "example_new_password"
                },
                "required": [
                  "password"
                ],
                "title": "UpdateSQLUserPasswordRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SQLUser"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PUT \\\n  --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/sql-users/{name}/password \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '{\"password\":\"example_new_password\"}'"
          }
        ]
      }
    },
    "/api/v1/invoices": {
      "get": {
        "operationId": "CockroachCloud_ListInvoices",
        "summary": "List invoices for a given organization",
        "description": "Sort order: invoice start date ascending",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListInvoicesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/invoices \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/invoices/{invoice_id}": {
      "get": {
        "operationId": "CockroachCloud_GetInvoice",
        "summary": "Gets a specific invoice for an organization",
        "parameters": [
          {
            "name": "invoice_id",
            "in": "path",
            "description": "invoice_id is the unique ID representing the invoice.\ninvoice_id is used to retrieve a specific\nbilling period's invoice.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/invoices/{invoice_id} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/organization": {
      "get": {
        "operationId": "CockroachCloud_GetOrganizationInfo",
        "summary": "Get information about the caller's organization",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/organization \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/roles": {
      "get": {
        "operationId": "CockroachCloud_ListRoleGrants",
        "summary": "Lists all RoleGrants",
        "parameters": [
          {
            "name": "pagination.page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pagination.limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pagination.as_of_time",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "pagination.sort_order",
            "in": "query",
            "description": " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order.",
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListRoleGrantsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://cockroachlabs.cloud/api/v1/roles?pagination.page=SOME_STRING_VALUE&pagination.limit=SOME_INTEGER_VALUE&pagination.as_of_time=SOME_STRING_VALUE&pagination.sort_order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/api/v1/roles/{user_id}": {
      "get": {
        "operationId": "CockroachCloud_GetAllRolesForUser",
        "summary": "Gets All Role Grants for the specified user",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllRolesForUserResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://cockroachlabs.cloud/api/v1/roles/{user_id} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "put": {
        "operationId": "CockroachCloud_SetRolesForUser",
        "summary": "Makes the users roles exactly those provided",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "roles": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/BuiltInRole"
                    }
                  }
                },
                "example": [
                  {
                    "name": "ORG_ROLE_CLUSTER_ADMIN",
                    "resource": {
                      "id": "example_cluster_id",
                      "type": "CLUSTER"
                    }
                  }
                ],
                "required": [
                  "roles"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllRolesForUserResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request PUT \\\n  --url https://cockroachlabs.cloud/api/v1/roles/{user_id} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'content-type: application/json' \\\n  --data '[{\"name\":\"ORG_ROLE_CLUSTER_ADMIN\",\"resource\":{\"id\":\"example_cluster_id\",\"type\":\"CLUSTER\"}}]'"
          }
        ]
      }
    },
    "/api/v1/roles/{user_id}/{resource_type}/{resource_id}/{role_name}": {
      "delete": {
        "operationId": "CockroachCloud_RemoveUserFromRole",
        "summary": "Removes the user from the given role",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ORGANIZATION",
                "CLUSTER"
              ]
            }
          },
          {
            "name": "resource_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ORG_ROLE_DEVELOPER",
                "ORG_ROLE_ADMIN",
                "ORG_ROLE_BILLING_COORDINATOR",
                "ORG_ROLE_ORG_ADMIN",
                "ORG_ROLE_ORG_MEMBER",
                "ORG_ROLE_CLUSTER_ADMIN",
                "ORG_ROLE_CLUSTER_OPERATOR_WRITER",
                "ORG_ROLE_CLUSTER_OPERATOR_READER",
                "ORG_ROLE_CLUSTER_DEVELOPER",
                "ORG_ROLE_CLUSTER_CREATOR"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllRolesForUserResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request DELETE \\\n  --url https://cockroachlabs.cloud/api/v1/roles/{user_id}/{resource_type}/{resource_id}/{role_name} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "operationId": "CockroachCloud_AddUserToRole",
        "summary": "Adds the user to the given role",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resource_type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ORGANIZATION",
                "CLUSTER"
              ]
            }
          },
          {
            "name": "resource_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role_name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "ORG_ROLE_DEVELOPER",
                "ORG_ROLE_ADMIN",
                "ORG_ROLE_BILLING_COORDINATOR",
                "ORG_ROLE_ORG_ADMIN",
                "ORG_ROLE_ORG_MEMBER",
                "ORG_ROLE_CLUSTER_ADMIN",
                "ORG_ROLE_CLUSTER_OPERATOR_WRITER",
                "ORG_ROLE_CLUSTER_OPERATOR_READER",
                "ORG_ROLE_CLUSTER_DEVELOPER",
                "ORG_ROLE_CLUSTER_CREATOR"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllRolesForUserResponse"
                }
              }
            }
          },
          "400": {
            "description": "Returned when a request field is invalid.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when the token bearer cannot be authenticated.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "404": {
            "description": "Returned when the resource does not exist.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          }
        },
        "tags": [
          "CockroachCloud"
        ],
        "x-badges": [
          {
            "color": "blue",
            "label": "PREVIEW"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://cockroachlabs.cloud/api/v1/roles/{user_id}/{resource_type}/{resource_id}/{role_name} \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AWSEndpointConnectionStatus": {
        "description": "The statuses map to the statuses returned by the AWS API.",
        "type": "string",
        "enum": [
          "ENDPOINT_PENDING",
          "ENDPOINT_PENDING_ACCEPTANCE",
          "ENDPOINT_AVAILABLE",
          "ENDPOINT_DELETING",
          "ENDPOINT_DELETED",
          "ENDPOINT_REJECTED",
          "ENDPOINT_FAILED",
          "ENDPOINT_EXPIRED"
        ]
      },
      "AWSPrivateLinkServiceDetail": {
        "type": "object",
        "properties": {
          "availability_zone_ids": {
            "description": "availability_zone_ids are the identifiers for the availability zones\nthat the service is available in.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "service_id": {
            "description": "service_id is the server side of the PrivateLink\nconnection. This is the same as AWSPrivateLinkEndpoint.service_id.",
            "type": "string"
          },
          "service_name": {
            "description": "service_name is the AWS service name customers use to create endpoints\non their end.",
            "type": "string"
          }
        },
        "required": [
          "service_name",
          "service_id",
          "availability_zone_ids"
        ]
      },
      "AddEgressRuleResponse": {
        "description": "AddEgressRuleResponse is the response message of the AddEgressRule RPC.",
        "type": "object",
        "properties": {
          "Rule": {
            "$ref": "#/components/schemas/EgressRule"
          }
        },
        "required": [
          "rule"
        ],
        "title": "AddEgressRuleResponse"
      },
      "AllowlistEntry": {
        "type": "object",
        "properties": {
          "cidr_ip": {
            "type": "string"
          },
          "cidr_mask": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "sql": {
            "type": "boolean"
          },
          "ui": {
            "type": "boolean"
          }
        },
        "example": {
          "cidr_ip": "192.168.1.1",
          "cidr_mask": 32,
          "name": "Example",
          "sql": true,
          "ui": true
        },
        "required": [
          "cidr_ip",
          "cidr_mask",
          "ui",
          "sql"
        ],
        "title": "AllowlistEntry"
      },
      "Any": {
        "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := ptypes.MarshalAny(foo)\n     ...\n     foo := &pb.Foo{}\n     if err := ptypes.UnmarshalAny(any, foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }",
        "type": "object",
        "properties": {
          "@type": {
            "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics.",
            "type": "string"
          }
        },
        "additionalProperties": {}
      },
      "AwsEndpointConnection": {
        "type": "object",
        "properties": {
          "cloud_provider": {
            "$ref": "#/components/schemas/api.CloudProvider"
          },
          "endpoint_id": {
            "description": "endpoint_id is the client side of the PrivateLink connection.",
            "type": "string"
          },
          "region_name": {
            "description": "region_name is the cloud provider region name (i.e. us-east-1).",
            "type": "string"
          },
          "service_id": {
            "description": "service_id is the server side of the PrivateLink\nconnection. This is the same as AWSPrivateLinkEndpoint.service_id.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/AWSEndpointConnectionStatus"
          }
        },
        "required": [
          "region_name",
          "cloud_provider",
          "status",
          "endpoint_id",
          "service_id"
        ]
      },
      "AwsEndpointConnections": {
        "type": "object",
        "properties": {
          "connections": {
            "description": "Connections is a list of private endpoints.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AwsEndpointConnection"
            }
          }
        },
        "required": [
          "connections"
        ]
      },
      "BuiltInRole": {
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/OrganizationUserRole"
          },
          "resource": {
            "$ref": "#/components/schemas/Resource"
          }
        },
        "required": [
          "name",
          "resource"
        ]
      },
      "CMEKClusterInfo": {
        "description": "CMEKClusterInfo contains the status of CMEK across an entire cluster,\nincluding within each one its regions.",
        "type": "object",
        "properties": {
          "region_infos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CMEKRegionInfo"
            }
          },
          "status": {
            "$ref": "#/components/schemas/CMEKStatus"
          }
        }
      },
      "CMEKCustomerAction": {
        "description": "CMEKCustomerAction enumerates the actions a customer can take on a cluster\nthat has been enabled for CMEK.",
        "type": "string",
        "enum": [
          "REVOKE"
        ]
      },
      "CMEKKeyInfo": {
        "description": "CMEKKeyInfo contains the status of a customer-provided key alongside the\nspecification.",
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "spec": {
            "$ref": "#/components/schemas/CMEKKeySpecification"
          },
          "status": {
            "$ref": "#/components/schemas/CMEKStatus"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "user_message": {
            "type": "string"
          }
        }
      },
      "CMEKKeySpecification": {
        "description": "CMEKKeySpecification contains all the details necessary to use a customer-provided\nencryption key.\n\nThis involves the type/location of the key and the principal to authenticate as \nwhen accessing it.",
        "type": "object",
        "properties": {
          "auth_principal": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/CMEKKeyType"
          },
          "uri": {
            "type": "string"
          }
        }
      },
      "CMEKKeyType": {
        "description": "- UNKNOWN_KEY_TYPE: UNKNOWN should never be used; if it is used, it indicates a bug.",
        "type": "string",
        "enum": [
          "AWS_KMS",
          "GCP_CLOUD_KMS",
          "NULL_KMS"
        ],
        "title": "CMEKKeyType enumerates types of customer-managed keys"
      },
      "CMEKRegionInfo": {
        "description": "CMEKRegionInfo contains the status of CMEK within a region.\n\nThis includes current and past key specifications used within the region, \nas well as the status of those specifications",
        "type": "object",
        "properties": {
          "key_infos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CMEKKeyInfo"
            }
          },
          "region": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/CMEKStatus"
          }
        }
      },
      "CMEKRegionSpecification": {
        "description": "CMEKRegionSpecification declares the customer-provided key specification that\nshould be used in a given region.",
        "type": "object",
        "properties": {
          "key_spec": {
            "$ref": "#/components/schemas/CMEKKeySpecification"
          },
          "region": {
            "type": "string"
          }
        }
      },
      "CMEKStatus": {
        "description": "CMEKStatus describes the current status of CMEK for an entire CRDB cluster\nor a CMEK key within a region.\n\n - UNKNOWN_STATUS: UNKNOWN should never be used; if it is used, it indicates a bug.\n - DISABLED: DISABLED corresponds to the state of a cluster or region-level key when\nCMEK has finished being disabled. By default, CMEK will be disabled for\nnew clusters.\n - DISABLING: DISABLING corresponds to the state of a cluster or region-level key when\nCMEK is in the process of being disabled.\n - DISABLE_FAILED: DISABLE_FAILED corresponds to the state of a cluster or region-level key\nwhen CMEK has failed to be disabled.\n - ENABLED: ENABLED corresponds to the state of a cluster or region-level key when\nCMEK is enabled.\n - ENABLING: ENABLING corresponds to the state of a cluster or region-level key when\nCMEK is in the process of being enabled.\n - ENABLE_FAILED: ENABLE_FAILED corresponds to the state of a cluster or region-level key\nwhen CMEK has failed to be enabled.\n - ROTATING: ROTATING corresponds to the state of a cluster or region when the a new\nspec is in the process of being enabled while an existing spec is being\ndisabled.\n - ROTATE_FAILED: ROTATE_FAILED corresponds to the state of a cluster or region if there was\na failure to update from one CMEK spec to another.\n - REVOKED: REVOKED corresponds to the state of a cluster or region-level key when the\ncustomer has revoked CockroachLab's permissions for their key.\n - REVOKING: REVOKING corresponds to the state of a cluster or region-level key when\nCMEK is in the process of being revoked.\n - REVOKE_FAILED: REVOKE_FAILED corresponds to the state of a cluster or region-level key\nwhen CMEK has failed to be revoked.",
        "type": "string",
        "enum": [
          "DISABLED",
          "DISABLING",
          "DISABLE_FAILED",
          "ENABLED",
          "ENABLING",
          "ENABLE_FAILED",
          "ROTATING",
          "ROTATE_FAILED",
          "REVOKED",
          "REVOKING",
          "REVOKE_FAILED"
        ]
      },
      "ClientCACertInfo": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/ClientCACertStatus"
          },
          "x509_pem_cert": {
            "type": "string"
          }
        }
      },
      "ClientCACertStatus": {
        "description": " - UNKNOWN_STATUS: UNKNOWN should never be used; if it is used, it indicates a bug.\n - NOT_SET: NOT_SET indicates a client CA cert is not set on the cluster.\nNew clusters won't have a client CA cert set.\n - IS_SET: IS_SET indicates a client CA cert is set on the cluster.\n - PENDING: PENDING indicates a client CA cert update is in flight on the cluster.\n - FAILED: FAILED indicates a client CA cert update was attempted, but failed.",
        "type": "string",
        "enum": [
          "NOT_SET",
          "IS_SET",
          "PENDING",
          "FAILED"
        ]
      },
      "CloudProviderRegion": {
        "type": "object",
        "properties": {
          "distance": {
            "description": "Distance in miles, based on client IP address.",
            "type": "number",
            "format": "float"
          },
          "location": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "provider": {
            "$ref": "#/components/schemas/api.CloudProvider"
          },
          "serverless": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "location",
          "provider",
          "serverless",
          "distance"
        ]
      },
      "CloudWatchMetricExportInfo": {
        "type": "object",
        "properties": {
          "cluster_id": {
            "type": "string"
          },
          "log_group_name": {
            "description": "log_group_name is the customized log group name.",
            "type": "string"
          },
          "role_arn": {
            "description": "role_arn is the IAM role used to upload metric segments to the\ntarget AWS account.",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/MetricExportStatus"
          },
          "target_region": {
            "description": "target_region specifies the specific AWS region that the metrics will\nbe exported to.",
            "type": "string"
          },
          "user_message": {
            "type": "string"
          }
        },
        "required": [
          "cluster_id",
          "role_arn"
        ],
        "title": "CloudWatchMetricExportInfo"
      },
      "Cluster": {
        "type": "object",
        "properties": {
          "account_id": {
            "type": "string"
          },
          "cloud_provider": {
            "$ref": "#/components/schemas/api.CloudProvider"
          },
          "cockroach_version": {
            "type": "string"
          },
          "config": {
            "$ref": "#/components/schemas/ClusterConfig"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "creator_id": {
            "type": "string"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "egress_traffic_policy": {
            "$ref": "#/components/schemas/EgressTrafficPolicy"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "network_visibility": {
            "$ref": "#/components/schemas/NetworkVisiblity"
          },
          "operation_status": {
            "$ref": "#/components/schemas/ClusterStatusType"
          },
          "plan": {
            "$ref": "#/components/schemas/Plan"
          },
          "regions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Region"
            }
          },
          "sql_dns": {
            "description": "sql_dns is the DNS name of SQL interface of the cluster.",
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/ClusterStateType"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "upgrade_status": {
            "$ref": "#/components/schemas/ClusterUpgradeStatus"
          }
        },
        "example": {
          "account_id": "",
          "cloud_provider": "GCP",
          "cockroach_version": "v21.2.4",
          "config": {
            "serverless": {
              "routing_id": "example-cluster-1533",
              "spend_limit": 0
            }
          },
          "created_at": "2022-03-22T20:23:11.285067Z",
          "creator_id": "7cde0cd9-0d8a-4008-8f90-45092ce8afc1",
          "deleted_at": null,
          "id": "35c4abb2-bb66-46d7-afed-25ebef5ed2aa",
          "name": "example-cluster",
          "operation_status": "CLUSTER_STATUS_UNSPECIFIED",
          "plan": "SERVERLESS",
          "regions": [
            {
              "name": "us-central1",
              "node_count": 0,
              "sql_dns": "free-tier7.gcp-us-central1.crdb.io",
              "ui_dns": ""
            }
          ],
          "state": "CREATED",
          "updated_at": "2022-03-22T20:23:11.879593Z",
          "upgrade_status": "USING_LATEST"
        },
        "required": [
          "id",
          "name",
          "cockroach_version",
          "upgrade_status",
          "plan",
          "cloud_provider",
          "state",
          "creator_id",
          "operation_status",
          "config",
          "regions"
        ]
      },
      "ClusterConfig": {
        "type": "object",
        "properties": {
          "dedicated": {
            "$ref": "#/components/schemas/DedicatedHardwareConfig"
          },
          "serverless": {
            "$ref": "#/components/schemas/ServerlessClusterConfig"
          }
        }
      },
      "ClusterMajorVersion": {
        "description": "For more information about CockroachDB cluster version support, see https://www.cockroachlabs.com/docs/releases/release-support-policy.html",
        "type": "object",
        "properties": {
          "support_status": {
            "$ref": "#/components/schemas/ClusterMajorVersionSupportStatus"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version",
          "support_status"
        ]
      },
      "ClusterMajorVersionSupportStatus": {
        "type": "string",
        "enum": [
          "UNSUPPORTED",
          "SUPPORTED",
          "PREVIEW"
        ]
      },
      "ClusterStateType": {
        "description": " - LOCKED: An exclusive operation is being performed on this cluster.\nOther operations should not proceed if they did not set a cluster into the LOCKED state.",
        "type": "string",
        "enum": [
          "CREATING",
          "CREATED",
          "CREATION_FAILED",
          "DELETED",
          "LOCKED"
        ]
      },
      "ClusterStatusType": {
        "type": "string",
        "enum": [
          "CLUSTER_STATUS_UNSPECIFIED",
          "CRDB_MAJOR_UPGRADE_RUNNING",
          "CRDB_MAJOR_UPGRADE_FAILED",
          "CRDB_MAJOR_ROLLBACK_RUNNING",
          "CRDB_MAJOR_ROLLBACK_FAILED",
          "CRDB_PATCH_RUNNING",
          "CRDB_PATCH_FAILED",
          "CRDB_SCALE_RUNNING",
          "CRDB_SCALE_FAILED",
          "MAINTENANCE_RUNNING",
          "CRDB_INSTANCE_UPDATE_RUNNING",
          "CRDB_INSTANCE_UPDATE_FAILED",
          "CRDB_EDIT_CLUSTER_RUNNING",
          "CRDB_EDIT_CLUSTER_FAILED",
          "CRDB_CMEK_OPERATION_RUNNING",
          "CRDB_CMEK_OPERATION_FAILED",
          "TENANT_RESTORE_RUNNING",
          "TENANT_RESTORE_FAILED",
          "CRDB_LOG_EXPORT_OPERATION_RUNNING",
          "CRDB_LOG_EXPORT_OPERATION_FAILED",
          "CRDB_CLUSTER_DISRUPTION_RUNNING",
          "CRDB_CLUSTER_DISRUPTION_FAILED",
          "CRDB_REPAVE_RUNNING",
          "CRDB_REPAVE_FAILED",
          "CRDB_CUSTOM_CLIENT_CA_RUNNING",
          "CRDB_CUSTOM_CLIENT_CA_FAILED"
        ]
      },
      "ClusterUpgradeStatus": {
        "description": " - FINALIZED: The cluster is running the latest available CockroachDB version, and all upgrades have been finalized.\n - MAJOR_UPGRADE_RUNNING: An major version upgrade is currently in progress.\n - UPGRADE_AVAILABLE: An upgrade is available. If preview builds are enabled for the parent organization, this could indicate that a preview upgrade is available.\n - PENDING_FINALIZATION: An upgrade is complete, but pending finalization. Upgrades are automatically finalized after 72 hours. For more information, see https://www.cockroachlabs.com/docs/stable/upgrade-cockroach-version.html\n - ROLLBACK_RUNNING: A rollback operation is currently in progress.",
        "type": "string",
        "enum": [
          "FINALIZED",
          "MAJOR_UPGRADE_RUNNING",
          "UPGRADE_AVAILABLE",
          "PENDING_FINALIZATION",
          "ROLLBACK_RUNNING"
        ]
      },
      "CreateClusterRequest": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Name must be 6-20 characters in length and can include numbers,\nlowercase letters, and dashes (but no leading or trailing dashes).",
            "type": "string"
          },
          "provider": {
            "$ref": "#/components/schemas/api.CloudProvider"
          },
          "spec": {
            "$ref": "#/components/schemas/CreateClusterSpecification"
          }
        },
        "example": {
          "name": "test-cluster",
          "provider": "GCP",
          "spec": {
            "serverless": {
              "regions": [
                "us-central1"
              ],
              "spend_limit": 0
            }
          }
        },
        "required": [
          "name",
          "provider",
          "spec"
        ],
        "title": "CreateClusterRequest"
      },
      "CreateClusterSpecification": {
        "type": "object",
        "properties": {
          "dedicated": {
            "$ref": "#/components/schemas/DedicatedClusterCreateSpecification"
          },
          "serverless": {
            "$ref": "#/components/schemas/ServerlessClusterCreateSpecification"
          }
        }
      },
      "Currency": {
        "description": "Currency is the set of currencies supported in CockroachDB Cloud.",
        "type": "string",
        "enum": [
          "USD",
          "CRDB_CLOUD_CREDITS"
        ]
      },
      "CurrencyAmount": {
        "type": "object",
        "properties": {
          "amount": {
            "description": "amount is the quantity of currency. Internally, currency amounts are tracked\nand stored using an arbitrary-precision decimal representation, but are serialized\nas 64-bit floating point numbers. There may be minor rounding discrepancies\nwhen parsed as a 32-bit float.",
            "type": "number",
            "format": "double"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          }
        }
      },
      "DatadogMetricExportInfo": {
        "type": "object",
        "properties": {
          "api_key": {
            "description": "api_key is the last 4 digits of a Datadog API key.",
            "type": "string"
          },
          "cluster_id": {
            "type": "string"
          },
          "site": {
            "$ref": "#/components/schemas/api.DatadogSite"
          },
          "status": {
            "$ref": "#/components/schemas/MetricExportStatus"
          },
          "user_message": {
            "type": "string"
          }
        },
        "required": [
          "cluster_id",
          "site"
        ],
        "title": "DatadogMetricExportInfo"
      },
      "DedicatedClusterCreateSpecification": {
        "type": "object",
        "properties": {
          "cockroach_version": {
            "description": "The CockroachDB version for the cluster. The current version\nis used if omitted.",
            "type": "string"
          },
          "hardware": {
            "$ref": "#/components/schemas/DedicatedHardwareCreateSpecification"
          },
          "network_visibility": {
            "$ref": "#/components/schemas/NetworkVisiblity"
          },
          "region_nodes": {
            "description": "Region keys should match the cloud provider's zone code.\nFor example, for Oregon, set region_name to \"us-west2\" for\nGCP and \"us-west-2\" for AWS. Values represent the node count.",
            "type": "object",
            "additionalProperties": {
              "format": "int32",
              "type": "integer"
            }
          },
          "restrict_egress_traffic": {
            "description": "Preview: RestrictEgressTraffic if set, results in an egress traffic policy of\ndefault-deny at creation time.",
            "type": "boolean"
          }
        },
        "required": [
          "region_nodes",
          "hardware"
        ]
      },
      "DedicatedClusterUpdateSpecification": {
        "type": "object",
        "properties": {
          "cmek_region_specs": {
            "description": "This field should contain the CMEK specs for newly added regions. If a\nCMEK spec is provided for an existing region, the request is invalid and\nwill fail.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CMEKRegionSpecification"
            }
          },
          "hardware": {
            "$ref": "#/components/schemas/DedicatedHardwareUpdateSpecification"
          },
          "region_nodes": {
            "description": "Region keys should match the cloud provider's zone code.\nFor example, for Oregon, set region_name to \"us-west2\" for\nGCP and \"us-west-2\" for AWS. Values represent the node count.",
            "type": "object",
            "additionalProperties": {
              "format": "int32",
              "type": "integer"
            }
          }
        }
      },
      "DedicatedHardwareConfig": {
        "type": "object",
        "properties": {
          "disk_iops": {
            "description": "disk_iops is the number of disk I/O operations per second that are\npermitted on each node in the cluster. Zero indicates the cloud\nprovider-specific default.",
            "type": "integer",
            "format": "int32"
          },
          "machine_type": {
            "description": "machine_type is the machine type identifier within the given cloud\nprovider, ex. m5.xlarge, n2-standard-4.",
            "type": "string"
          },
          "memory_gib": {
            "description": "memory_gib is the memory GiB per node in the cluster.",
            "type": "number",
            "format": "float"
          },
          "num_virtual_cpus": {
            "description": "num_virtual_cpus is the number of virtual CPUs per node in the cluster.",
            "type": "integer",
            "format": "int32"
          },
          "storage_gib": {
            "description": "storage_gib is the number of storage GiB per node in the cluster.",
            "type": "integer",
            "format": "int32"
          }
        },
        "required": [
          "machine_type",
          "num_virtual_cpus",
          "storage_gib",
          "memory_gib",
          "disk_iops"
        ]
      },
      "DedicatedHardwareCreateSpecification": {
        "type": "object",
        "properties": {
          "disk_iops": {
            "description": "disk_iops is the number of disk I/O operations per second that are\npermitted on each node in the cluster. Zero indicates the cloud\nprovider-specific default. Only available for AWS clusters.",
            "type": "integer",
            "format": "int32"
          },
          "machine_spec": {
            "$ref": "#/components/schemas/DedicatedMachineTypeSpecification"
          },
          "storage_gib": {
            "description": "storage_gib is the number of storage GiB per node in the cluster.\nZero indicates default to the lowest storage GiB available given machine specs.",
            "type": "integer",
            "format": "int32"
          }
        },
        "required": [
          "machine_spec",
          "storage_gib"
        ]
      },
      "DedicatedHardwareUpdateSpecification": {
        "type": "object",
        "properties": {
          "disk_iops": {
            "description": "disk_iops is the number of disk I/O operations per second that are\npermitted on each node in the cluster. Zero indicates the cloud\nprovider-specific default. Only available for AWS clusters.",
            "type": "integer",
            "format": "int32"
          },
          "machine_spec": {
            "$ref": "#/components/schemas/DedicatedMachineTypeSpecification"
          },
          "storage_gib": {
            "description": "storage_gib is the number of storage GiB per node in the cluster.",
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "DedicatedMachineTypeSpecification": {
        "type": "object",
        "properties": {
          "machine_type": {
            "description": "machine_type is the machine type identifier within the given cloud\nprovider, ex. m5.xlarge, n2-standard-4.",
            "type": "string"
          },
          "num_virtual_cpus": {
            "description": "num_virtual_cpus may be used to automatically select a machine type\naccording to the desired number of vCPUs.",
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "DeleteEgressRuleResponse": {
        "description": "DeleteEgressRuleResponse is the output for the DeleteEgressRule RPC.",
        "type": "object",
        "properties": {
          "Rule": {
            "$ref": "#/components/schemas/EgressRule"
          }
        },
        "required": [
          "rule"
        ],
        "title": "DeleteEgressRuleResponse"
      },
      "DeleteMetricExportResponse": {
        "type": "object",
        "properties": {
          "cluster_id": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/MetricExportStatus"
          }
        },
        "required": [
          "cluster_id"
        ],
        "title": "DeleteMetricExportResponse"
      },
      "EditEgressRuleResponse": {
        "description": "EditEgressRuleResponse is the output message to the EditEgressRule RPC.",
        "type": "object",
        "properties": {
          "Rule": {
            "$ref": "#/components/schemas/EgressRule"
          }
        },
        "required": [
          "rule"
        ],
        "title": "EditEgressRuleResponse"
      },
      "EgressRule": {
        "description": "EgressRule represents a network egress rule.",
        "type": "object",
        "properties": {
          "cluster_id": {
            "description": "cluster_id identifies the cluster to which this egress rule applies.",
            "type": "string"
          },
          "created_at": {
            "description": "created_at is the time at which the time at which the egress rule was\ncreated.",
            "type": "string",
            "format": "date-time"
          },
          "crl_managed": {
            "description": "crl_managed indicates this egress rule is managed by CockroachDB Cloud\nservices. This field is set by the server.",
            "type": "boolean"
          },
          "description": {
            "description": "description is a longer that serves to document the rules purpose.",
            "type": "string"
          },
          "destination": {
            "description": "destination is the endpoint (or subnetwork if CIDR) to which traffic is\nallowed.",
            "type": "string"
          },
          "id": {
            "description": "id uniquely identifies this egress rule.",
            "type": "string"
          },
          "name": {
            "description": "name is the name of the egress rule.",
            "type": "string"
          },
          "paths": {
            "description": "paths are the allowed URL paths. Only valid if Type=\"FQDN\".",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ports": {
            "description": "ports are the allowed ports for TCP protocol. If Empty, all ports are\nallowed.",
            "type": "array",
            "items": {
              "format": "int32",
              "type": "integer"
            }
          },
          "state": {
            "description": "state indicates the state of the egress rule.",
            "type": "string"
          },
          "type": {
            "description": "type classifies the destination field. Valid types include: \"FQDN\",\n\"CIDR\".",
            "type": "string"
          }
        },
        "required": [
          "name",
          "id",
          "cluster_id",
          "type",
          "state",
          "crl_managed",
          "destination",
          "description"
        ],
        "title": "EgressRule"
      },
      "EgressTrafficPolicy": {
        "description": " - POLICY_UNSPECIFIED: POLICY_UNSPECIFIED signifies the egress traffic policy is unspecified.\n - POLICY_ERROR: POLICY_ERROR signifies there has been an internal server error during\nan update to the egress traffic policy.\n - ALLOW_ALL: ALLOW_ALL signifies all outbound connections from CockroachDB are allowed.\n - DEFAULT_DENY: DEFAULT_DENY signifies that CockroachDB can only initiate network\nconnections to destinations explicitly allowed by the user or CockroachDB\nCloud operators.\n - POLICY_UPDATING: POLICY_UPDATING signifies the egress traffic policy is updating.",
        "type": "string",
        "enum": [
          "POLICY_UNSPECIFIED",
          "POLICY_ERROR",
          "ALLOW_ALL",
          "DEFAULT_DENY",
          "POLICY_UPDATING"
        ]
      },
      "GetAllRolesForUserResponse": {
        "type": "object",
        "properties": {
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuiltInRole"
            }
          }
        },
        "title": "get_all_roles_for_user_response contains a representation of all roles a given user has"
      },
      "GetConnectionStringResponse": {
        "type": "object",
        "properties": {
          "connection_string": {
            "description": "connection_string contains the full connection string with parameters formatted inline.",
            "type": "string"
          },
          "params": {
            "description": "params contains a list of individual key parameters for generating nonstandard connection strings.",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "GetEgressRuleResponse": {
        "description": "GetEgressRuleResponse is the response message to the GetEgressRule RPC.",
        "type": "object",
        "properties": {
          "rule": {
            "$ref": "#/components/schemas/EgressRule"
          }
        },
        "required": [
          "rule"
        ],
        "title": "GetEgressRuleResponse"
      },
      "Invoice": {
        "description": "Invoice message represents the details and the total charges associated with\none billing period, which starts at the beginning of the month and ends at\nthe beginning of the next month.\n\nThe message also includes details about each invoice item.",
        "type": "object",
        "properties": {
          "adjustments": {
            "description": "adjustments is a list of credits or costs that adjust the value of the\ninvoice (e.g. a Serverless Free Credit or Premium Support adjustment).\nUnlike line items, adjustments are not tied to a particular cluster.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceAdjustment"
            }
          },
          "balances": {
            "description": "balances are the amounts of currency left at the time of the invoice.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyAmount"
            }
          },
          "invoice_id": {
            "description": "invoice_id is the unique ID representing the invoice.",
            "type": "string"
          },
          "invoice_items": {
            "description": "invoice_items are sorted by the cluster name.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceItem"
            }
          },
          "period_end": {
            "description": "period_end is the end of the billing period (exclusive).",
            "type": "string",
            "format": "date-time"
          },
          "period_start": {
            "description": "period_start is the start of the billing period (inclusive).",
            "type": "string",
            "format": "date-time"
          },
          "totals": {
            "description": "totals is a list of the total amounts per currency.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyAmount"
            }
          }
        },
        "required": [
          "invoice_id",
          "totals",
          "period_start",
          "period_end",
          "invoice_items",
          "balances"
        ]
      },
      "InvoiceAdjustment": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "name": {
            "description": "name identifies the adjustment.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "amount"
        ]
      },
      "InvoiceItem": {
        "type": "object",
        "properties": {
          "cluster": {
            "$ref": "#/components/schemas/Cluster"
          },
          "line_items": {
            "description": "line_items contain all the relevant line items from the Metronome invoice.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LineItem"
            }
          },
          "totals": {
            "description": "totals is a list of the total amounts of line items per currency.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyAmount"
            }
          }
        },
        "required": [
          "cluster",
          "totals",
          "line_items"
        ]
      },
      "KeysetPaginationRequest": {
        "type": "object",
        "properties": {
          "as_of_time": {
            "type": "string",
            "format": "date-time"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "page": {
            "type": "string"
          },
          "sort_order": {
            "$ref": "#/components/schemas/SortOrder"
          }
        }
      },
      "KeysetPaginationResponse": {
        "type": "object",
        "properties": {
          "next_page": {
            "type": "string"
          },
          "previous_page": {
            "type": "string"
          }
        }
      },
      "LineItem": {
        "type": "object",
        "properties": {
          "description": {
            "description": "description contains the details of the line item (i.e t3 micro).",
            "type": "string"
          },
          "quantity": {
            "description": "quantity is the number of the specific line items used.",
            "type": "number",
            "format": "double"
          },
          "quantity_unit": {
            "$ref": "#/components/schemas/QuantityUnitType"
          },
          "total": {
            "$ref": "#/components/schemas/CurrencyAmount"
          },
          "unit_cost": {
            "description": "unit_cost is the cost per unit of line item.",
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "description",
          "quantity",
          "unit_cost",
          "total",
          "quantity_unit"
        ]
      },
      "ListAllowlistEntriesResponse": {
        "type": "object",
        "properties": {
          "allowlist": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AllowlistEntry"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/KeysetPaginationResponse"
          },
          "propagating": {
            "type": "boolean"
          }
        },
        "required": [
          "allowlist",
          "propagating"
        ],
        "title": "ListAllowlistEntriesResponse"
      },
      "ListAvailableRegionsResponse": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/KeysetPaginationResponse"
          },
          "regions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CloudProviderRegion"
            }
          }
        },
        "required": [
          "regions"
        ]
      },
      "ListClusterNodesResponse": {
        "type": "object",
        "properties": {
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Node"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/KeysetPaginationResponse"
          }
        },
        "required": [
          "nodes"
        ]
      },
      "ListClustersResponse": {
        "type": "object",
        "properties": {
          "clusters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Cluster"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/KeysetPaginationResponse"
          }
        },
        "required": [
          "clusters"
        ]
      },
      "ListEgressRulesResponse": {
        "description": "ListEgressRulesResponse is the output for the ListEgressRules RPC.",
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/KeysetPaginationResponse"
          },
          "rules": {
            "description": "rules are the egress rules associated with the given CockroachDB cluster.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EgressRule"
            }
          }
        },
        "title": "ListEgressRulesResponse"
      },
      "ListInvoicesResponse": {
        "type": "object",
        "properties": {
          "invoices": {
            "description": "invoices are sorted by period_start time.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            }
          }
        },
        "required": [
          "invoices"
        ]
      },
      "ListMajorClusterVersionsResponse": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/KeysetPaginationResponse"
          },
          "versions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClusterMajorVersion"
            }
          }
        },
        "required": [
          "versions"
        ]
      },
      "ListRoleGrantsResponse": {
        "type": "object",
        "properties": {
          "grants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserRoleGrants"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/KeysetPaginationResponse"
          }
        },
        "title": "list_role_grants_response contains a representation of all roles"
      },
      "ListSQLUsersResponse": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/KeysetPaginationResponse"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SQLUser"
            }
          }
        },
        "required": [
          "users"
        ]
      },
      "LogExportClusterInfo": {
        "description": "LogExportClusterInfo contains a package of information that fully\ndescribes both the intended state of the log export configuration for\na specific cluster but also some metadata around its deployment\nstatus, any error messages, and some timestamps.",
        "type": "object",
        "properties": {
          "cluster_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "spec": {
            "$ref": "#/components/schemas/LogExportClusterSpecification"
          },
          "status": {
            "$ref": "#/components/schemas/LogExportStatus"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "user_message": {
            "type": "string"
          }
        }
      },
      "LogExportClusterSpecification": {
        "description": "LogExportClusterSpecification contains all the data necessary to\nconfigure log export for an individual cluster. Users would supply\nthis data via the API and also receive it back when inspecting the\nstate of their log export configuration.",
        "type": "object",
        "properties": {
          "auth_principal": {
            "description": "auth_principal is either the AWS Role ARN that identifies a role\nthat the cluster account can assume to write to CloudWatch or the\nGCP Project ID that the cluster service account has permissions to\nwrite to for cloud logging.",
            "type": "string"
          },
          "groups": {
            "description": "groups is a collection of log group configurations to customize\nwhich CRDB channels get aggregated into different groups at the\ntarget sink. Unconfigured channels will be sent to the default\nlocations via the settings above.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LogExportGroup"
            }
          },
          "log_name": {
            "description": "log_name is an identifier for the logs in the customer's log sink.",
            "type": "string"
          },
          "redact": {
            "description": "redact controls whether logs are redacted before forwarding to\ncustomer sinks. By default they are not redacted.",
            "type": "boolean"
          },
          "region": {
            "description": "region controls whether all logs are sent to a specific region in\nthe customer sink. By default, logs will remain their region of\norigin depending on the cluster node's region.",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/LogExportType"
          }
        }
      },
      "LogExportGroup": {
        "description": "LogExportGroup contains an export configuration for a single\nlog group which can route logs for a subset of CRDB channels.",
        "type": "object",
        "properties": {
          "channels": {
            "description": "channels is a list of CRDB log channels to include in this\ngroup.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "log_name": {
            "description": "log_name is the name of the group, reflected in the log sink.",
            "type": "string"
          },
          "min_level": {
            "$ref": "#/components/schemas/LogLevel"
          },
          "redact": {
            "description": "redact is a boolean that governs whether this log group\nshould aggregate redacted logs. Redaction settings will\ninherit from the cluster log export defaults if unset.",
            "type": "boolean"
          }
        },
        "required": [
          "log_name",
          "channels"
        ]
      },
      "LogExportStatus": {
        "description": "LogExportStatus encodes the possible states that a configuration can\nbe in as it is created, deployed, and disabled.",
        "type": "string",
        "enum": [
          "DISABLED",
          "DISABLING",
          "DISABLE_FAILED",
          "ENABLED",
          "ENABLING",
          "ENABLE_FAILED"
        ]
      },
      "LogExportType": {
        "description": "LogExportType encodes the cloud selection that we're exporting to\nalong with the cloud logging platform.\n\nCurrently, each cloud has a single logging platform.",
        "type": "string",
        "enum": [
          "AWS_CLOUDWATCH",
          "GCP_CLOUD_LOGGING"
        ]
      },
      "LogLevel": {
        "description": " - LOG_LEVEL_UNSPECIFIED: The unspecified log level includes all logs.\n - WARNING: The WARNING severity is used for situations which may require\nspecial handling, where normal operation is expected to resume \nautomatically.\n - ERROR: The ERROR severity is used for situations that require special \nhandling, where normal operation could not proceed as expected. \nOther operations can continue mostly unaffected.\n - FATAL: The FATAL severity is used for situations that require an \nimmediate, hard server shutdown. A report is also sent to \ntelemetry if telemetry is enabled.",
        "type": "string",
        "enum": [
          "LOG_LEVEL_UNSPECIFIED",
          "WARNING",
          "ERROR",
          "FATAL"
        ]
      },
      "MetricExportStatus": {
        "type": "string",
        "enum": [
          "NOT_DEPLOYED",
          "DISABLING",
          "ENABLING",
          "ENABLED",
          "ERROR"
        ]
      },
      "NetworkVisiblity": {
        "type": "string",
        "enum": [
          "NETWORK_VISIBILITY_PUBLIC",
          "NETWORK_VISIBILITY_PRIVATE"
        ]
      },
      "Node": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "region_name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/NodeStatus"
          }
        },
        "required": [
          "name",
          "region_name",
          "status"
        ]
      },
      "NodeStatus": {
        "type": "string",
        "enum": [
          "LIVE",
          "NOT_READY"
        ]
      },
      "OperatingSystem": {
        "type": "string",
        "enum": [
          "OS_MAC",
          "OS_LINUX",
          "OS_WINDOWS"
        ]
      },
      "Organization": {
        "type": "object",
        "properties": {
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "name",
          "created_at"
        ]
      },
      "OrganizationUserRole": {
        "type": "string",
        "enum": [
          "ORG_ROLE_DEVELOPER",
          "ORG_ROLE_ADMIN",
          "ORG_ROLE_BILLING_COORDINATOR",
          "ORG_ROLE_ORG_ADMIN",
          "ORG_ROLE_ORG_MEMBER",
          "ORG_ROLE_CLUSTER_ADMIN",
          "ORG_ROLE_CLUSTER_OPERATOR_WRITER",
          "ORG_ROLE_CLUSTER_OPERATOR_READER",
          "ORG_ROLE_CLUSTER_DEVELOPER",
          "ORG_ROLE_CLUSTER_CREATOR"
        ]
      },
      "Plan": {
        "description": " - DEDICATED: A paid plan that offers dedicated hardware in any location.\n - CUSTOM: A plan option that is used for clusters whose machine configs are not \nsupported in self-service. All INVOICE clusters are under this plan option.\n - SERVERLESS: A paid plan that runs on shared hardware and caps the users'\nmaximum monthly spending to a user-specified (possibly 0) amount.",
        "type": "string",
        "enum": [
          "DEDICATED",
          "CUSTOM",
          "SERVERLESS"
        ]
      },
      "PrivateEndpointService": {
        "type": "object",
        "properties": {
          "aws": {
            "$ref": "#/components/schemas/AWSPrivateLinkServiceDetail"
          },
          "cloud_provider": {
            "$ref": "#/components/schemas/api.CloudProvider"
          },
          "region_name": {
            "description": "region_name is the cloud provider region name (i.e. us-east-1).",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/PrivateEndpointServiceStatus"
          }
        },
        "required": [
          "region_name",
          "cloud_provider",
          "status",
          "aws"
        ]
      },
      "PrivateEndpointServiceStatus": {
        "description": "- ENDPOINT_SERVICE_STATUS_DELETE_FAILED: One note is that if the service is deleted, there is no longer\na record, hence there is no \"DELETED\" status.",
        "type": "string",
        "enum": [
          "ENDPOINT_SERVICE_STATUS_CREATING",
          "ENDPOINT_SERVICE_STATUS_AVAILABLE",
          "ENDPOINT_SERVICE_STATUS_CREATE_FAILED",
          "ENDPOINT_SERVICE_STATUS_DELETING",
          "ENDPOINT_SERVICE_STATUS_DELETE_FAILED"
        ],
        "title": "Private Endpoints"
      },
      "PrivateEndpointServices": {
        "type": "object",
        "properties": {
          "services": {
            "description": "services contains a list of all cluster related services.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PrivateEndpointService"
            }
          }
        },
        "required": [
          "services"
        ]
      },
      "QuantityUnitType": {
        "description": "Billing\nQuantityUnitType is the unit type for a quantity of billing line item.",
        "type": "string",
        "enum": [
          "HOURS",
          "REQUEST_UNITS"
        ]
      },
      "Region": {
        "type": "object",
        "properties": {
          "internal_dns": {
            "description": "internal_dns is the internal DNS name of the cluster within the cloud provider's network. It is used to connect to the cluster with PrivateLink or VPC peering.",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "node_count": {
            "description": "node_count will be 0 for Serverless clusters.",
            "type": "integer",
            "format": "int32"
          },
          "primary": {
            "description": "primary is true only for the primary region in a Multi Region Serverless cluster.",
            "type": "boolean"
          },
          "sql_dns": {
            "description": "sql_dns is the DNS name of SQL interface of the cluster. It is used to connect to the cluster with IP allowlisting.",
            "type": "string"
          },
          "ui_dns": {
            "description": "ui_dns is the DNS name used when connecting to the DB Console for the cluster.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "sql_dns",
          "ui_dns",
          "node_count",
          "internal_dns"
        ]
      },
      "Resource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/ResourceType"
          }
        },
        "required": [
          "type"
        ]
      },
      "ResourceType": {
        "type": "string",
        "enum": [
          "ORGANIZATION",
          "CLUSTER"
        ]
      },
      "SQLUser": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ]
      },
      "ServerlessClusterConfig": {
        "type": "object",
        "properties": {
          "routing_id": {
            "description": "routing_id is used to identify the cluster in a connection string.",
            "type": "string"
          },
          "spend_limit": {
            "description": "spend_limit is the maximum monthly charge for a cluster, in US cents.",
            "type": "integer",
            "format": "int32"
          },
          "usage_limits": {
            "$ref": "#/components/schemas/UsageLimits"
          }
        },
        "required": [
          "routing_id"
        ]
      },
      "ServerlessClusterCreateSpecification": {
        "type": "object",
        "properties": {
          "primary_region": {
            "description": "Preview: Specify which region should be made the primary region.\nThis is only applicable to multi-region Serverless clusters.\nThis field is required if you create the cluster in more than\none region.",
            "type": "string"
          },
          "regions": {
            "description": "Region values should match the cloud provider's zone code.\nFor example, for Oregon, set region_name to \"us-west2\" for\nGCP and \"us-west-2\" for AWS.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "spend_limit": {
            "description": "spend_limit is the maximum monthly charge for a cluster, in US cents.",
            "type": "integer",
            "format": "int32"
          },
          "usage_limits": {
            "$ref": "#/components/schemas/UsageLimits"
          }
        },
        "required": [
          "regions"
        ]
      },
      "ServerlessClusterUpdateSpecification": {
        "type": "object",
        "properties": {
          "spend_limit": {
            "description": "spend_limit is the maximum monthly charge for a cluster, in US cents.",
            "type": "integer",
            "format": "int32"
          },
          "usage_limits": {
            "$ref": "#/components/schemas/UsageLimits"
          }
        }
      },
      "SortOrder": {
        "description": " - ASC: Sort in ascending order. This is the default unless otherwise specified.\n - DESC: Sort in descending order.",
        "type": "string",
        "enum": [
          "ASC",
          "DESC"
        ]
      },
      "Status": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Any"
            }
          },
          "message": {
            "type": "string"
          }
        }
      },
      "UpdateClusterSpecification": {
        "description": "Set `upgrade_status` to 'UPGRADE_RUNNING' to start an upgrade. Multi-node clusters will undergo a rolling upgrade and will remain available, but single-node clusters will be briefly unavailable while the upgrade takes place. Upgrades will be finalized automatically after 72 hours, or can be manually finalized by setting the value to 'FINALIZED'. Before the cluster is finalized, it can be rolled back by setting the value to 'ROLLBACK_RUNNING'. Version upgrade operations cannot be performed simultaneously with other update operations.",
        "type": "object",
        "properties": {
          "dedicated": {
            "$ref": "#/components/schemas/DedicatedClusterUpdateSpecification"
          },
          "serverless": {
            "$ref": "#/components/schemas/ServerlessClusterUpdateSpecification"
          },
          "upgrade_status": {
            "$ref": "#/components/schemas/ClusterUpgradeStatus"
          }
        },
        "example": {
          "dedicated": {
            "hardware": {
              "machine_spec": {
                "machine_type": "n2-standard-8"
              }
            },
            "region_nodes": {
              "us-central1": 5,
              "us-west1": 3
            }
          },
          "upgrade_status": "UPGRADE_RUNNING"
        }
      },
      "UsageLimits": {
        "type": "object",
        "properties": {
          "request_unit_limit": {
            "description": "request_unit_limit is the maximum number of request units that the cluster\ncan consume during the month. If this limit is exceeded, then the cluster\nis disabled until the limit is increased, or until the beginning of the\nnext month when more free request units are granted. It is an error for\nthis to be zero.",
            "type": "string",
            "format": "int64"
          },
          "storage_mib_limit": {
            "description": "storage_mib_limit is the maximum number of Mebibytes of storage that the\ncluster can have at any time during the month. If this limit is exceeded,\nthen the cluster is throttled; only one SQL connection is allowed at a\ntime, with the expectation that it is used to delete data to reduce storage\nusage. If is an error for this to be zero.",
            "type": "string",
            "format": "int64"
          }
        },
        "required": [
          "request_unit_limit",
          "storage_mib_limit"
        ]
      },
      "UserRoleGrants": {
        "type": "object",
        "properties": {
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuiltInRole"
            }
          },
          "user_id": {
            "type": "string"
          }
        },
        "example": [
          {
            "name": "ORG_ROLE_CLUSTER_ADMIN",
            "resource": {
              "id": "example_cluster_id",
              "type": "CLUSTER"
            }
          }
        ],
        "required": [
          "roles",
          "user_id"
        ]
      },
      "api.CloudProvider": {
        "description": " - GCP: The Google Cloud Platform cloud provider.\n - AWS: The Amazon Web Services cloud provider.",
        "type": "string",
        "enum": [
          "GCP",
          "AWS"
        ]
      },
      "api.Database": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "table_count": {
            "type": "string",
            "format": "int64"
          }
        },
        "required": [
          "name"
        ],
        "title": "Database"
      },
      "api.DatadogSite": {
        "description": "DatadogSite specifies the Datadog region to export to.\nNOTE: Regions are completely independent from one another.",
        "type": "string",
        "enum": [
          "US1",
          "US3",
          "US5",
          "US1_GOV",
          "EU1"
        ]
      },
      "api.ListDatabasesResponse": {
        "type": "object",
        "properties": {
          "databases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/api.Database"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/KeysetPaginationResponse"
          }
        },
        "required": [
          "databases"
        ],
        "title": "ListDatabasesResponse"
      }
    },
    "requestBodies": {
      "CockroachCloud_AddAllowlistEntry2Entry": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "sql": {
                  "type": "boolean"
                },
                "ui": {
                  "type": "boolean"
                }
              },
              "example": {
                "cidr_ip": "192.168.1.1",
                "cidr_mask": 32,
                "name": "Example",
                "sql": true,
                "ui": true
              },
              "required": [
                "ui",
                "sql"
              ],
              "title": "AllowlistEntry"
            }
          }
        },
        "description": "AllowlistEntry",
        "required": true
      },
      "CockroachCloud_EnableCMEKSpecBody": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "region_specs": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CMEKRegionSpecification"
                  }
                }
              },
              "example": {
                "region_specs": [
                  {
                    "key_spec": {
                      "auth_principal": "arn:aws:iam::account:role/role-name-with-path",
                      "type": "AWS_KMS",
                      "uri": "arn:aws:kms:us-west-2:111122223333:key/id-of-kms-key"
                    },
                    "region": "us-central1"
                  }
                ]
              },
              "required": [
                "region_specs"
              ],
              "title": "CMEKClusterSpecification"
            }
          }
        },
        "required": true
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  },
  "tags": [
    {
      "name": "CockroachCloud"
    }
  ],
  "externalDocs": {
    "description": "Use the CockroachDB Cloud API",
    "url": "https://www.cockroachlabs.com/docs/cockroachcloud/cloud-api"
  },
  "security": [
    {
      "Bearer": []
    }
  ]
}