{
  "basePath": "/v1",
  "consumes": [
    "application/json"
  ],
  "definitions": {
    "ACLCreate": {
      "additionalProperties": false,
      "properties": {
        "allow_read": {
          "description": "Allows to connect as a consumer.",
          "type": "boolean"
        },
        "allow_write": {
          "description": "Allows to connect as a producer.",
          "type": "boolean"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the Access Control List will be created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "pattern": {
          "description": "Name or prefix of a topic to which you provide access. Must be skipped when `pattern_type` is `all`.",
          "maxLength": 249,
          "pattern": "^[a-zA-Z0-9\\._\\-]+$",
          "type": "string"
        },
        "pattern_type": {
          "description": "Access Control List pattern type. When pattern_type is `all`, skip `pattern`.",
          "enum": [
            "literal",
            "prefixed",
            "all"
          ],
          "example": "literal",
          "type": "string"
        },
        "user_id": {
          "description": "Unique identifier of the associated user for which the Access Control List was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        }
      },
      "required": [
        "allow_read",
        "allow_write",
        "datastore_id",
        "pattern_type",
        "user_id"
      ],
      "type": "object"
    },
    "ACLPOST": {
      "additionalProperties": false,
      "properties": {
        "acl": {
          "$ref": "#/definitions/ACLCreate"
        }
      },
      "required": [
        "acl"
      ],
      "type": "object"
    },
    "ACLPUT": {
      "additionalProperties": false,
      "properties": {
        "acl": {
          "$ref": "#/definitions/ACLUpdate"
        }
      },
      "required": [
        "acl"
      ],
      "type": "object"
    },
    "ACLUpdate": {
      "additionalProperties": false,
      "properties": {
        "allow_read": {
          "description": "Allows to connect as a consumer.",
          "type": "boolean"
        },
        "allow_write": {
          "description": "Allows to connect as a producer.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "AvailableExtensionCreate": {
      "additionalProperties": false,
      "properties": {
        "datastore_type_ids": {
          "description": "List of cluster types that support the extension. Retrieved from the `datastore-type` resource.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "type": "array"
        },
        "dependency_ids": {
          "description": "List of extensions that depend on this extension.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "type": "array"
        },
        "name": {
          "description": "Name of the available extension.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "datastore_type_ids",
        "name"
      ],
      "type": "object"
    },
    "AvailableExtensionPOST": {
      "additionalProperties": false,
      "properties": {
        "available-extension": {
          "$ref": "#/definitions/AvailableExtensionCreate"
        }
      },
      "required": [
        "available-extension"
      ],
      "type": "object"
    },
    "AvailableExtensionPUT": {
      "additionalProperties": false,
      "properties": {
        "available-extension": {
          "$ref": "#/definitions/AvailableExtensionUpdate"
        }
      },
      "required": [
        "available-extension"
      ],
      "type": "object"
    },
    "AvailableExtensionUpdate": {
      "additionalProperties": false,
      "properties": {
        "datastore_type_ids": {
          "description": "List of cluster types that support the extension. Retrieved from the `datastore-type` resource.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "type": "array"
        },
        "dependency_ids": {
          "description": "List of extensions that depend on this extension.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "datastore_type_ids"
      ],
      "type": "object"
    },
    "CPUSteps": {
      "additionalProperties": false,
      "properties": {
        "vcpus_max": {
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "vcpus_min": {
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "vcpus_step": {
          "example": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "CapabilitiesLogPlatform": {
      "properties": {
        "kafka": {
          "description": "Indicates whether the log platform available for Kafka cluster.",
          "type": "boolean"
        },
        "mysql_semisync": {
          "description": "Indicates whether the log platform available for MySQL semi-sync cluster.",
          "type": "boolean"
        },
        "mysql_sync": {
          "description": "Indicates whether the log platform available for MySQL sync cluster.",
          "type": "boolean"
        },
        "postgresql": {
          "description": "Indicates whether the log platform available for PostgreSQL cluster.",
          "type": "boolean"
        },
        "redis": {
          "description": "Indicates whether the log platform available for Redis cluster.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "CapabilitiesResponse": {
      "properties": {
        "log_platform_ds_types": {
          "$ref": "#/definitions/CapabilitiesLogPlatform"
        }
      },
      "type": "object"
    },
    "CapabilitiesResponseList": {
      "properties": {
        "capabilities": {
          "items": {
            "$ref": "#/definitions/CapabilitiesResponse"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ConfigChange": {
      "properties": {
        "config": {
          "type": "object"
        }
      },
      "type": "object"
    },
    "ConfigurationParameterCreate": {
      "additionalProperties": false,
      "properties": {
        "can_be_empty": {
          "description": "Indicates whether the configuration parameter can have an empty value.",
          "type": "boolean"
        },
        "choices": {
          "description": "Available choices for the configuration parameter.",
          "items": {
            "description": "Any primitive value: number, string, boolean, null",
            "type": [
              "number",
              "string",
              "boolean",
              "null"
            ]
          },
          "type": "array",
          "uniqueItems": true
        },
        "datastore_type_id": {
          "description": "Unique identifier of the cluster type for which the configuration parameter is available.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "default_value_template": {
          "description": "Jinja template describing a default value of the configuration parameter.",
          "type": [
            "string",
            "null"
          ]
        },
        "factor": {
          "description": "Factor of the configuration parameter. A number that divides configuration parameter value evenly.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "invalid_values": {
          "description": "List of invalid values for configuration parameter. If a value is in the list of `invalid_values`, an error is returned.",
          "items": {
            "description": "Any primitive value: number, string, boolean, null",
            "type": [
              "number",
              "string",
              "boolean",
              "null"
            ]
          },
          "type": "array",
          "uniqueItems": true
        },
        "is_available_for_customer": {
          "description": "Indicates whether the configuration parameter is available for a customer.",
          "type": "boolean"
        },
        "is_changeable": {
          "description": "Indicates whether the configuration parameter can be changed.",
          "type": "boolean"
        },
        "is_multiple_choice_available": {
          "description": "Indicates whether the configuration parameter can have multiple choices.",
          "type": "boolean"
        },
        "is_restart_required": {
          "description": "Indicates whether the database needs a restart to apply changes.",
          "type": "boolean"
        },
        "max_template": {
          "description": "Jinja template describing a maximum value of the configuration parameter.",
          "type": "string"
        },
        "min_template": {
          "description": "Jinja template describing a minimum value of the configuration parameter.",
          "type": "string"
        },
        "name": {
          "description": "Name of the configuration parameter.",
          "type": "string"
        },
        "type": {
          "description": "Type of the configuration parameter.",
          "enum": [
            "int",
            "float",
            "str",
            "bool"
          ],
          "example": "int",
          "type": "string"
        },
        "unit": {
          "description": "Units of the configuration parameter.",
          "type": "string"
        }
      },
      "required": [
        "can_be_empty",
        "datastore_type_id",
        "is_available_for_customer",
        "is_changeable",
        "is_multiple_choice_available",
        "is_restart_required",
        "name",
        "type",
        "unit"
      ],
      "type": "object"
    },
    "ConfigurationParameterPOST": {
      "additionalProperties": false,
      "properties": {
        "configuration-parameter": {
          "$ref": "#/definitions/ConfigurationParameterCreate"
        }
      },
      "required": [
        "configuration-parameter"
      ],
      "type": "object"
    },
    "DBMSSpecificLimit": {
      "additionalProperties": false,
      "properties": {
        "kafka": {
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "mysql_semisync": {
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "mysql_sync": {
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "postgresql": {
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "redis": {
          "example": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DBMSSpecificVcpusStepsLimit": {
      "additionalProperties": false,
      "properties": {
        "kafka": {
          "items": {
            "$ref": "#/definitions/CPUSteps"
          },
          "type": "array"
        },
        "mysql_semisync": {
          "items": {
            "$ref": "#/definitions/CPUSteps"
          },
          "type": "array"
        },
        "mysql_sync": {
          "items": {
            "$ref": "#/definitions/CPUSteps"
          },
          "type": "array"
        },
        "postgresql": {
          "items": {
            "$ref": "#/definitions/CPUSteps"
          },
          "type": "array"
        },
        "redis": {
          "items": {
            "$ref": "#/definitions/CPUSteps"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "DatabaseCreate": {
      "additionalProperties": false,
      "properties": {
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the database will be created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "lc_collate": {
          "description": "`LC_COLLATE` setting for the PostgreSQL cluster. Determined when you create a database and you cannot change it afterwards. The default value is `C`.",
          "type": "string"
        },
        "lc_ctype": {
          "description": "`LC_CTYPE` setting for the PostgreSQL cluster. Determined when you create a database and you cannot change it afterwards. The default value is `C`.",
          "type": "string"
        },
        "name": {
          "description": "Name of the database.",
          "example": "Name",
          "maxLength": 63,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
          "type": "string"
        },
        "owner_id": {
          "description": "Unique identifier of the database owner.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        }
      },
      "required": [
        "datastore_id",
        "name"
      ],
      "type": "object"
    },
    "DatabasePOST": {
      "additionalProperties": false,
      "properties": {
        "database": {
          "$ref": "#/definitions/DatabaseCreate"
        }
      },
      "required": [
        "database"
      ],
      "type": "object"
    },
    "DatabasePUT": {
      "additionalProperties": false,
      "properties": {
        "database": {
          "$ref": "#/definitions/DatabaseUpdate"
        }
      },
      "required": [
        "database"
      ],
      "type": "object"
    },
    "DatabaseUpdate": {
      "additionalProperties": false,
      "properties": {
        "owner_id": {
          "description": "Unique identifier of the database owner.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        }
      },
      "required": [
        "owner_id"
      ],
      "type": "object"
    },
    "DatastoreCreate": {
      "additionalProperties": false,
      "properties": {
        "backup_retention_days": {
          "description": "Number of days for which backups are stored before they are deleted.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "config": {
          "description": "Configuration parameters for the cluster. You can retrieve information about available configuration parameters with the `configuration-parameters` resource.",
          "type": "object"
        },
        "disk": {
          "$ref": "#/definitions/DatastoreCreateDisk"
        },
        "flavor": {
          "$ref": "#/definitions/DatastoreCreateFlavor"
        },
        "flavor_id": {
          "description": "Unique identifier of the flavor for the cluster. Can be skipped when `flavor` is set.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "floating_ips": {
          "$ref": "#/definitions/DatastoreCreateFloatingIPs"
        },
        "log_platform": {
          "$ref": "#/definitions/DatastoreEnableLogPlatform"
        },
        "name": {
          "description": "Name of the cluster.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]*$",
          "type": "string"
        },
        "node_count": {
          "description": "Number of nodes in the cluster.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "pooler": {
          "allOf": [
            {
              "$ref": "#/definitions/DatastoreCreatePooler"
            }
          ],
          "description": "Connection pooler settings. Available for PostgreSQL, PostgreSQL for 1C, PostgreSQL TimescaleDB."
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "redis_password": {
          "description": "Cluster password.",
          "example": "Secret",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "restore": {
          "allOf": [
            {
              "$ref": "#/definitions/DatastoreCreateRestore"
            }
          ],
          "description": "Parameters for restoring a cluster from a backup, including the source cluster ID and target restore time."
        },
        "security_groups": {
          "description": "List of security groups for the cluster.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "minItems": 1,
          "type": "array",
          "uniqueItems": true
        },
        "subnet_id": {
          "description": "Unique identifier of the associated OpenStack network.",
          "format": "UUID",
          "type": "string"
        },
        "type_id": {
          "description": "Unique identifier of the cluster type. Retrieved from the `datastore-type` resource.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        }
      },
      "required": [
        "name",
        "node_count",
        "subnet_id",
        "type_id"
      ],
      "type": "object"
    },
    "DatastoreCreateDisk": {
      "additionalProperties": false,
      "properties": {
        "size": {
          "description": "Volume size in GB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "type": {
          "description": "Type of the network volume.",
          "enum": [
            "network-ultra"
          ],
          "example": "network-ultra",
          "type": "string"
        }
      },
      "required": [
        "size",
        "type"
      ],
      "type": "object"
    },
    "DatastoreCreateFlavor": {
      "additionalProperties": false,
      "properties": {
        "disk": {
          "description": "Volume size in GB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "disk_type": {
          "description": "Volume type.",
          "enum": [
            "local",
            "network-ultra"
          ],
          "example": "local",
          "type": "string"
        },
        "ram": {
          "description": "Amount of RAM in MB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "vcpus": {
          "description": "Number of vCPUs.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "disk",
        "ram",
        "vcpus"
      ],
      "type": "object"
    },
    "DatastoreCreateFloatingIPs": {
      "additionalProperties": false,
      "properties": {
        "master": {
          "description": "Number of public IPs associated with the master.",
          "maximum": 1,
          "minimum": 0,
          "type": "integer"
        },
        "replica": {
          "description": "Number of public IPs associated with the replicas. The minimum value is `0`. The maximum value must be 1 less than the value of the `node_count` parameter.",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "master",
        "replica"
      ],
      "type": "object"
    },
    "DatastoreCreatePooler": {
      "additionalProperties": false,
      "properties": {
        "mode": {
          "description": "Pooling mode. The default value is `transaction`.",
          "enum": [
            "session",
            "transaction",
            "statement"
          ],
          "example": "session",
          "type": "string"
        },
        "size": {
          "description": "Pool size. The default value is `30`. The available values are from `1` to `500`.",
          "example": 1,
          "maximum": 500,
          "minimum": 1,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DatastoreCreateRestore": {
      "additionalProperties": false,
      "properties": {
        "datastore_id": {
          "description": "Cluster identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "target_time": {
          "description": "Specific point in time to restore cluster to.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        }
      },
      "required": [
        "datastore_id"
      ],
      "type": "object"
    },
    "DatastoreEnableLogPlatform": {
      "additionalProperties": false,
      "properties": {
        "log_group": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "DatastoreFirewallPUT": {
      "additionalProperties": false,
      "properties": {
        "firewall": {
          "$ref": "#/definitions/DatastoreUpdateFirewall"
        }
      },
      "required": [
        "firewall"
      ],
      "type": "object"
    },
    "DatastoreFirewallRule": {
      "properties": {
        "ip": {
          "example": "127.0.0.1",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "type": "object"
    },
    "DatastoreFlavor": {
      "properties": {
        "disk": {
          "description": "Volume size in GB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "disk_type": {
          "description": "Volume type.",
          "type": "string"
        },
        "ram": {
          "description": "Amount of RAM in MB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "vcpus": {
          "description": "Number of vCPUs.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DatastoreInstance": {
      "properties": {
        "availability_zone": {
          "description": "Availability zone in which the instance is placed.",
          "type": "string"
        },
        "floating_ip": {
          "description": "Public IP associated with the instance.",
          "example": "127.0.0.1",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "hostname": {
          "description": "Instance DNS name.",
          "type": "string"
        },
        "id": {
          "description": "Instance identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "ip": {
          "description": "IP address of the instance.",
          "example": "127.0.0.1",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "role": {
          "description": "Instance role in the cluster.",
          "enum": [
            "UNKNOWN",
            "MASTER",
            "REPLICA",
            "SYNC_STANDBY"
          ],
          "example": "UNKNOWN",
          "type": "string"
        },
        "role_name": {
          "description": "Instance DNS role name.",
          "type": "string"
        },
        "status": {
          "description": "Current instance status.",
          "enum": [
            "ACTIVE",
            "DELETED",
            "DOWN",
            "ERROR",
            "RESIZING"
          ],
          "example": "ACTIVE",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DatastoreLogPlatform": {
      "properties": {
        "log_group": {
          "description": "Name of the log group to store logs from cluster.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DatastoreLogPlatformPOST": {
      "properties": {
        "log_platform": {
          "allOf": [
            {
              "$ref": "#/definitions/DatastoreEnableLogPlatform"
            }
          ],
          "description": "Export parameters of the cluster logs."
        }
      },
      "required": [
        "log_platform"
      ],
      "type": "object"
    },
    "DatastorePOST": {
      "additionalProperties": false,
      "properties": {
        "datastore": {
          "$ref": "#/definitions/DatastoreCreate"
        }
      },
      "required": [
        "datastore"
      ],
      "type": "object"
    },
    "DatastorePUT": {
      "additionalProperties": false,
      "properties": {
        "datastore": {
          "$ref": "#/definitions/DatastoreUpdate"
        }
      },
      "type": "object"
    },
    "DatastorePasswordPUT": {
      "additionalProperties": false,
      "properties": {
        "password": {
          "$ref": "#/definitions/DatastoreUpdatePassword"
        }
      },
      "required": [
        "password"
      ],
      "type": "object"
    },
    "DatastorePooler": {
      "properties": {
        "mode": {
          "description": "Pooling mode. The default value is `transaction`.",
          "type": "string"
        },
        "size": {
          "description": "Pool size. The default value is `30`. The available values are from `1` to `500`.",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DatastorePoolerPUT": {
      "additionalProperties": false,
      "properties": {
        "pooler": {
          "allOf": [
            {
              "$ref": "#/definitions/DatastoreUpdatePooler"
            }
          ],
          "description": "Connection pooler settings. Available for PostgreSQL, PostgreSQL for 1C, PostgreSQL TimescaleDB."
        }
      },
      "required": [
        "pooler"
      ],
      "type": "object"
    },
    "DatastoreResize": {
      "additionalProperties": false,
      "properties": {
        "disk": {
          "$ref": "#/definitions/DatastoreResizeDisk"
        },
        "flavor": {
          "$ref": "#/definitions/DatastoreResizeFlavor"
        },
        "flavor_id": {
          "description": "Unique identifier of the flavor for the cluster. Can be skipped when `flavor` is set.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "node_count": {
          "description": "Number of nodes in the cluster.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DatastoreResizeDisk": {
      "additionalProperties": false,
      "properties": {
        "size": {
          "description": "Volume size in GB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "size"
      ],
      "type": "object"
    },
    "DatastoreResizeFlavor": {
      "additionalProperties": false,
      "properties": {
        "disk": {
          "description": "Volume size in GB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "ram": {
          "description": "Amount of RAM in MB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "vcpus": {
          "description": "Number of vCPUs.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "disk",
        "ram",
        "vcpus"
      ],
      "type": "object"
    },
    "DatastoreResizePOST": {
      "additionalProperties": false,
      "properties": {
        "resize": {
          "$ref": "#/definitions/DatastoreResize"
        }
      },
      "required": [
        "resize"
      ],
      "type": "object"
    },
    "DatastoreUpdate": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "description": "Name of the cluster.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]*$",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "DatastoreUpdateFirewall": {
      "additionalProperties": false,
      "properties": {
        "ips": {
          "description": "List of IP addresses that will have access to the cluster.",
          "items": {
            "example": "127.0.0.1",
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "ips"
      ],
      "type": "object"
    },
    "DatastoreUpdatePassword": {
      "additionalProperties": false,
      "properties": {
        "redis_password": {
          "description": "Cluster password.",
          "example": "Secret",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "redis_password"
      ],
      "type": "object"
    },
    "DatastoreUpdatePooler": {
      "additionalProperties": false,
      "properties": {
        "mode": {
          "description": "Pooling mode. The default value is `transaction`.",
          "enum": [
            "session",
            "transaction",
            "statement"
          ],
          "example": "session",
          "type": "string"
        },
        "size": {
          "description": "Pool size. The default value is `30`. The available values are from `1` to `500`.",
          "example": 1,
          "maximum": 500,
          "minimum": 1,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "DatastoreUpdateSecurityGroups": {
      "additionalProperties": false,
      "properties": {
        "security_groups": {
          "description": "List of security groups for the cluster.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "minItems": 1,
          "type": "array",
          "uniqueItems": true
        }
      },
      "required": [
        "security_groups"
      ],
      "type": "object"
    },
    "DatastoresCount": {
      "properties": {
        "kafka": {
          "description": "The number of Kafka clusters.",
          "example": 2,
          "type": "integer"
        },
        "mysql_semisync": {
          "description": "The number of MySQL semi-sync clusters.",
          "example": 0,
          "type": "integer"
        },
        "mysql_sync": {
          "description": "The number of MySQL sync clusters.",
          "example": 2,
          "type": "integer"
        },
        "postgresql": {
          "description": "The number of PostgreSQL clusters.",
          "example": 1,
          "type": "integer"
        },
        "redis": {
          "description": "The number of Redis clusters.",
          "example": 1,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "ErrorResponse_400": {
      "properties": {
        "code": {
          "example": 400,
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "title": {
          "example": "Bad request. Fix the request and try again.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ErrorResponse_401": {
      "properties": {
        "code": {
          "example": 401,
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "title": {
          "example": "Bad or expired token. You can reissue the token and try again.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ErrorResponse_403": {
      "properties": {
        "code": {
          "example": 403,
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "title": {
          "example": "Access is forbidden. Make sure you have the required rights.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ErrorResponse_404": {
      "properties": {
        "code": {
          "example": 404,
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "title": {
          "example": "Requested resource has not been found.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ExtensionCreate": {
      "additionalProperties": false,
      "properties": {
        "available_extension_id": {
          "description": "Unique identifier of the available extension. Retrieved from the `available-extensions` resource.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "database_id": {
          "description": "Unique identifier of the associated database for which the extension will be created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the extension will be created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        }
      },
      "required": [
        "available_extension_id",
        "database_id",
        "datastore_id"
      ],
      "type": "object"
    },
    "ExtensionPOST": {
      "additionalProperties": false,
      "properties": {
        "extension": {
          "$ref": "#/definitions/ExtensionCreate"
        }
      },
      "required": [
        "extension"
      ],
      "type": "object"
    },
    "FlavorCreate": {
      "additionalProperties": false,
      "properties": {
        "datastore_type_ids": {
          "description": "List of cluster types that flavor should be available to. Retrieved from the `datastore-type` resource.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "Description of the flavor.",
          "type": "string"
        },
        "disk": {
          "description": "Volume size in GB.",
          "example": 1,
          "minimum": 0,
          "type": "integer"
        },
        "fl_size": {
          "description": "Type of the flavor.",
          "enum": [
            "standard",
            "high_freq",
            "dedicated_host"
          ],
          "example": "standard",
          "type": "string"
        },
        "host": {
          "$ref": "#/definitions/FlavorCreateHost"
        },
        "is_public": {
          "default": true,
          "description": "Indicates whether the flavor is available for all customers.",
          "type": "boolean"
        },
        "name": {
          "description": "Name of the flavor.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ram": {
          "description": "Amount of RAM in MB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "subtype": {
          "description": "Subtype of the flavor.",
          "enum": [
            "STANDARD",
            "CPU",
            "MEMORY"
          ],
          "example": "STANDARD",
          "type": "string"
        },
        "template": {
          "description": "Template to create the flavor from. This field is `deprecated` and has no effect.",
          "type": "string"
        },
        "vcpus": {
          "description": "Number of vCPUs.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "datastore_type_ids",
        "disk",
        "fl_size",
        "name",
        "ram",
        "vcpus"
      ],
      "type": "object"
    },
    "FlavorCreateHost": {
      "additionalProperties": false,
      "properties": {
        "line": {
          "description": "Flavor host line.",
          "example": "Large",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "processor": {
          "description": "Flavor host CPU model.",
          "example": "Intel Gold 6240",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "total_count": {
          "description": "Total number of flavor hosts.",
          "example": 1,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "line",
        "processor",
        "total_count"
      ],
      "type": "object"
    },
    "FlavorHost": {
      "properties": {
        "available_count": {
          "description": "Number of flavor hosts available for customers.",
          "example": 1,
          "minimum": 0,
          "type": "integer"
        },
        "line": {
          "description": "Flavor host line.",
          "example": "Large",
          "type": "string"
        },
        "processor": {
          "description": "Flavor host CPU model.",
          "example": "Intel Gold 6240",
          "type": "string"
        }
      },
      "type": "object"
    },
    "FlavorHostPUT": {
      "additionalProperties": false,
      "properties": {
        "host": {
          "$ref": "#/definitions/FlavorUpdateHost"
        }
      },
      "required": [
        "host"
      ],
      "type": "object"
    },
    "FlavorPOST": {
      "additionalProperties": false,
      "properties": {
        "flavor": {
          "$ref": "#/definitions/FlavorCreate"
        }
      },
      "required": [
        "flavor"
      ],
      "type": "object"
    },
    "FlavorPUT": {
      "additionalProperties": false,
      "properties": {
        "flavor": {
          "$ref": "#/definitions/FlavorUpdate"
        }
      },
      "type": "object"
    },
    "FlavorUpdate": {
      "additionalProperties": false,
      "properties": {
        "description": {
          "description": "Description of the flavor.",
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "description": "Name of the flavor.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "type": "object"
    },
    "FlavorUpdateHost": {
      "additionalProperties": false,
      "properties": {
        "line": {
          "description": "Flavor host line.",
          "example": "Large",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "processor": {
          "description": "Flavor host CPU model.",
          "example": "Intel Gold 6240",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "total_count": {
          "description": "Total number of flavor hosts.",
          "example": 1,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "line",
        "processor",
        "total_count"
      ],
      "type": "object"
    },
    "FloatingIPCreate": {
      "additionalProperties": false,
      "properties": {
        "instance_id": {
          "description": "Instance identifier to associate floating IP with.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        }
      },
      "required": [
        "instance_id"
      ],
      "type": "object"
    },
    "FloatingIPDelete": {
      "additionalProperties": false,
      "properties": {
        "floating_ip": {
          "$ref": "#/definitions/FloatingIPRemove"
        }
      },
      "required": [
        "floating_ip"
      ],
      "type": "object"
    },
    "FloatingIPPost": {
      "additionalProperties": false,
      "properties": {
        "floating_ip": {
          "$ref": "#/definitions/FloatingIPCreate"
        }
      },
      "required": [
        "floating_ip"
      ],
      "type": "object"
    },
    "FloatingIPRemove": {
      "additionalProperties": false,
      "properties": {
        "instance_id": {
          "description": "Instance identifier to disassociate floating IP from.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        }
      },
      "required": [
        "instance_id"
      ],
      "type": "object"
    },
    "GrantCreate": {
      "additionalProperties": false,
      "properties": {
        "database_id": {
          "description": "Unique identifier of the associated database for which the grant will be created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the grant will be created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "user_id": {
          "description": "Unique identifier of the associated user for which the grant was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        }
      },
      "required": [
        "database_id",
        "datastore_id",
        "user_id"
      ],
      "type": "object"
    },
    "GrantPOST": {
      "additionalProperties": false,
      "properties": {
        "grant": {
          "$ref": "#/definitions/GrantCreate"
        }
      },
      "required": [
        "grant"
      ],
      "type": "object"
    },
    "LogicalReplicationSlotPOST": {
      "additionalProperties": false,
      "properties": {
        "logical-replication-slot": {
          "$ref": "#/definitions/LogicalRepplicationSlotCreate"
        }
      },
      "required": [
        "logical-replication-slot"
      ],
      "type": "object"
    },
    "LogicalRepplicationSlotCreate": {
      "additionalProperties": false,
      "properties": {
        "database_id": {
          "description": "Unique identifier of the associated database for which the logical replication slot will be created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the logical replication slot will be created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "name": {
          "description": "Name of the logical replication slot.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "database_id",
        "datastore_id",
        "name"
      ],
      "type": "object"
    },
    "MetricResponseModel": {
      "properties": {
        "avg": {
          "description": "Average value in the `values` series.",
          "type": "number"
        },
        "datastore_id": {
          "description": "Cluster identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "ip": {
          "description": "IP address of the cluster instance.",
          "example": "127.0.0.1",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "last": {
          "description": "The most recent data point (last element of values, aligned with the final timestamp).",
          "type": "number"
        },
        "max": {
          "description": "Highest value in the `values` series.",
          "type": "number"
        },
        "min": {
          "description": "Lowest value in the `values` series.",
          "type": "number"
        },
        "timestamps": {
          "description": "List of timestamps representing the time axis (X-axis) of the chart.",
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        "values": {
          "description": "List of numeric values corresponding to each timestamp (Y-axis) on the chart.",
          "items": {
            "type": "number"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "PrometheusMetricsTokenCreate": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "description": "Name of the prometheus metrics token.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "PrometheusMetricsTokenPOST": {
      "additionalProperties": false,
      "properties": {
        "prometheus-metrics-token": {
          "$ref": "#/definitions/PrometheusMetricsTokenCreate"
        }
      },
      "required": [
        "prometheus-metrics-token"
      ],
      "type": "object"
    },
    "PrometheusMetricsTokenPUT": {
      "additionalProperties": false,
      "properties": {
        "prometheus-metrics-token": {
          "$ref": "#/definitions/PrometheusMetricsTokenUpdate"
        }
      },
      "required": [
        "prometheus-metrics-token"
      ],
      "type": "object"
    },
    "PrometheusMetricsTokenUpdate": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "description": "Name of the prometheus metrics token.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "ProtectionMode": {
      "properties": {
        "protection": {
          "description": "Indicates whether the cluster is in protection mode. If `true`, the cluster cannot be deleted.",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "TopicCreate": {
      "additionalProperties": false,
      "properties": {
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the topic will be created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "name": {
          "description": "Name of the topic.",
          "example": "Name",
          "maxLength": 249,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9\\._\\-]+$",
          "type": "string"
        },
        "partitions": {
          "default": 1,
          "description": "Number of partitions for the topic. For an active topic only increasing is possible, decreasing typically requires data migration or creating a new topic.",
          "example": 1,
          "maximum": 4000,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "datastore_id",
        "name",
        "partitions"
      ],
      "type": "object"
    },
    "TopicPOST": {
      "additionalProperties": false,
      "properties": {
        "topic": {
          "$ref": "#/definitions/TopicCreate"
        }
      },
      "required": [
        "topic"
      ],
      "type": "object"
    },
    "TopicPUT": {
      "additionalProperties": false,
      "properties": {
        "topic": {
          "$ref": "#/definitions/TopicUpdate"
        }
      },
      "required": [
        "topic"
      ],
      "type": "object"
    },
    "TopicUpdate": {
      "additionalProperties": false,
      "properties": {
        "partitions": {
          "default": 1,
          "description": "Number of partitions for the topic. For an active topic only increasing is possible, decreasing typically requires data migration or creating a new topic.",
          "example": 1,
          "maximum": 4000,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "partitions"
      ],
      "type": "object"
    },
    "UserCreate": {
      "additionalProperties": false,
      "properties": {
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the user will be created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "name": {
          "description": "Name of the user. For MySQL sync and MySQL semi-sync clusters, the username cannot exceed `32` characters. For all other cluster types, the username is limited to `63` characters.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "pattern": "^[A-Za-z_][A-Za-z0-9_]*$",
          "type": "string"
        },
        "password": {
          "description": "Password for the user.",
          "example": "Secret",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "datastore_id",
        "name",
        "password"
      ],
      "type": "object"
    },
    "UserPOST": {
      "additionalProperties": false,
      "properties": {
        "user": {
          "$ref": "#/definitions/UserCreate"
        }
      },
      "required": [
        "user"
      ],
      "type": "object"
    },
    "UserPUT": {
      "additionalProperties": false,
      "properties": {
        "user": {
          "$ref": "#/definitions/UserUpdate"
        }
      },
      "required": [
        "user"
      ],
      "type": "object"
    },
    "UserUpdate": {
      "additionalProperties": false,
      "properties": {
        "password": {
          "description": "Password for the user.",
          "example": "Secret",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "password"
      ],
      "type": "object"
    },
    "acl": {
      "properties": {
        "allow_read": {
          "description": "Allows to connect as a consumer.",
          "type": "boolean"
        },
        "allow_write": {
          "description": "Allows to connect as a producer.",
          "type": "boolean"
        },
        "created_at": {
          "description": "Date and time when the Access Control List was created.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the Access Control List was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "id": {
          "description": "Access Control List identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "pattern": {
          "description": "Name or prefix of a topic to which you provide access. Must be skipped when `pattern_type` is `all`.",
          "type": "string"
        },
        "pattern_type": {
          "description": "Access Control List pattern type. When pattern_type is `all`, skip `pattern`.",
          "enum": [
            "literal",
            "prefixed",
            "all"
          ],
          "example": "literal",
          "type": "string"
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "123e4567e89b12d3a456426655440000",
          "format": "UUID",
          "type": "string"
        },
        "status": {
          "description": "Current Access Control List status.",
          "enum": [
            "ACTIVE",
            "PENDING_CREATE",
            "PENDING_UPDATE",
            "PENDING_DELETE"
          ],
          "example": "ACTIVE",
          "type": "string"
        },
        "updated_at": {
          "description": "Date and time when the Access Control List was updated.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "user_id": {
          "description": "Unique identifier of the associated user for which the Access Control List was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        }
      },
      "type": "object"
    },
    "aclList": {
      "properties": {
        "acls": {
          "items": {
            "$ref": "#/definitions/acl"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "aclWrapper": {
      "properties": {
        "acl": {
          "$ref": "#/definitions/acl"
        }
      },
      "type": "object"
    },
    "action": {
      "properties": {
        "created_at": {
          "description": "Date and time when the action was created.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the action was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "finish_time": {
          "description": "Date and time when the action was finished.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "id": {
          "description": "Action identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "name": {
          "description": "Name of the action to determine operation.",
          "type": "string"
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "123e4567e89b12d3a456426655440000",
          "format": "UUID",
          "type": "string"
        },
        "request_id": {
          "description": "Request identifier.",
          "type": "string"
        },
        "start_time": {
          "description": "Date and time when the action was started.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "status": {
          "description": "Current action status.",
          "enum": [
            "PENDING",
            "ERROR",
            "DONE"
          ],
          "example": "PENDING",
          "type": "string"
        },
        "updated_at": {
          "description": "Date and time when the action was updated.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "actionList": {
      "properties": {
        "actions": {
          "items": {
            "$ref": "#/definitions/action"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "actionWrapper": {
      "properties": {
        "action": {
          "$ref": "#/definitions/action"
        }
      },
      "type": "object"
    },
    "available-extension": {
      "properties": {
        "datastore_type_ids": {
          "description": "List of cluster types that support the extension. Retrieved from the `datastore-type` resource.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "type": "array"
        },
        "dependency_ids": {
          "description": "List of extensions that depend on this extension.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "type": "array"
        },
        "disabled": {
          "description": "Indicates whether the available extension is currently disabled. This field is optional and defaults to `false`.",
          "type": "boolean"
        },
        "id": {
          "description": "Available extension identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "name": {
          "description": "Name of the available extension.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "type": "object"
    },
    "available-extensionList": {
      "properties": {
        "available-extensions": {
          "items": {
            "$ref": "#/definitions/available-extension"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "available-extensionWrapper": {
      "properties": {
        "available-extension": {
          "$ref": "#/definitions/available-extension"
        }
      },
      "type": "object"
    },
    "configuration-parameter": {
      "properties": {
        "can_be_empty": {
          "description": "Indicates whether the configuration parameter can have an empty value.",
          "type": "boolean"
        },
        "choices": {
          "description": "Available choices for the configuration parameter.",
          "items": {
            "description": "Any primitive value: number, string, boolean, null",
            "type": [
              "number",
              "string",
              "boolean",
              "null"
            ]
          },
          "type": "array"
        },
        "datastore_type_id": {
          "description": "Unique identifier of the cluster type for which the configuration parameter is available.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "default_value": {
          "description": "Default value of the configuration parameter.",
          "type": [
            "number",
            "string",
            "boolean",
            "null"
          ]
        },
        "factor": {
          "description": "Factor of the configuration parameter. A number that divides configuration parameter value evenly.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "id": {
          "description": "Configuration parameter identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "invalid_values": {
          "description": "List of invalid values for configuration parameter. If a value is in the list of `invalid_values`, an error is returned.",
          "items": {
            "description": "Any primitive value: number, string, boolean, null",
            "type": [
              "number",
              "string",
              "boolean",
              "null"
            ]
          },
          "type": "array"
        },
        "is_changeable": {
          "description": "Indicates whether the configuration parameter can be changed.",
          "type": "boolean"
        },
        "is_multiple_choice_available": {
          "description": "Indicates whether the configuration parameter can have multiple choices.",
          "type": "boolean"
        },
        "is_restart_required": {
          "description": "Indicates whether the database needs a restart to apply changes.",
          "type": "boolean"
        },
        "max": {
          "description": "Maximum value of the configuration parameter.",
          "type": [
            "number",
            "string",
            "boolean",
            "null"
          ]
        },
        "min": {
          "description": "Minimum value of the configuration parameter.",
          "type": [
            "number",
            "string",
            "boolean",
            "null"
          ]
        },
        "name": {
          "description": "Name of the configuration parameter.",
          "type": "string"
        },
        "type": {
          "description": "Type of the configuration parameter.",
          "type": "string"
        },
        "unit": {
          "description": "Units of the configuration parameter.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "configuration-parameterList": {
      "properties": {
        "configuration-parameters": {
          "items": {
            "$ref": "#/definitions/configuration-parameter"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "configuration-parameterWrapper": {
      "properties": {
        "configuration-parameter": {
          "$ref": "#/definitions/configuration-parameter"
        }
      },
      "type": "object"
    },
    "database": {
      "properties": {
        "created_at": {
          "description": "Date and time when the database was created.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the database was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "id": {
          "description": "Database identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "lc_collate": {
          "description": "`LC_COLLATE` setting for the PostgreSQL cluster. Determined when you create a database and you cannot change it afterwards. The default value is `C`.",
          "type": "string"
        },
        "lc_ctype": {
          "description": "`LC_CTYPE` setting for the PostgreSQL cluster. Determined when you create a database and you cannot change it afterwards. The default value is `C`.",
          "type": "string"
        },
        "name": {
          "description": "Name of the database.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "owner_id": {
          "description": "Unique identifier of the database owner.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "123e4567e89b12d3a456426655440000",
          "format": "UUID",
          "type": "string"
        },
        "status": {
          "description": "Current database status.",
          "enum": [
            "ACTIVE",
            "DELETED",
            "ERROR",
            "PENDING_CREATE",
            "PENDING_UPDATE",
            "PENDING_DELETE"
          ],
          "example": "ACTIVE",
          "type": "string"
        },
        "updated_at": {
          "description": "Date and time when the database was updated.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "databaseList": {
      "properties": {
        "databases": {
          "items": {
            "$ref": "#/definitions/database"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "databaseWrapper": {
      "properties": {
        "database": {
          "$ref": "#/definitions/database"
        }
      },
      "type": "object"
    },
    "datastore": {
      "properties": {
        "allow_restore": {
          "description": "Indicates whether the cluster can currently be restored from a backup.",
          "type": "boolean"
        },
        "backup_retention_days": {
          "description": "Number of days for which backups are stored before they are deleted.",
          "type": "integer"
        },
        "config": {
          "description": "Configuration parameters for the cluster. You can retrieve information about available configuration parameters with the `configuration-parameters` resource.",
          "type": "object"
        },
        "connection": {
          "description": "Object that maps each cluster node to its DNS endpoint.",
          "example": {
            "key": "value"
          },
          "type": "object"
        },
        "created_at": {
          "description": "Date and time when the cluster was created.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "creation_finished_at": {
          "description": "Date and time when the cluster completed provisioning, became fully operational, and transitioned to the ACTIVE state.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "databases_count": {
          "description": "Number of databases hosted in the cluster.",
          "type": "integer"
        },
        "disk_used": {
          "description": "Amount of disk space currently consumed by the cluster (in GB).",
          "type": "integer"
        },
        "enabled": {
          "description": "Indicates whether the cluster is enabled.",
          "type": "boolean"
        },
        "firewall": {
          "description": "List of IP addresses that will have access to the cluster.",
          "items": {
            "$ref": "#/definitions/DatastoreFirewallRule"
          },
          "type": "array"
        },
        "flavor": {
          "allOf": [
            {
              "$ref": "#/definitions/DatastoreFlavor"
            }
          ],
          "description": "Compute configuration of cluster nodes, including vCPUs, RAM, volume size, and volume type."
        },
        "flavor_id": {
          "description": "Unique identifier of the flavor for the cluster. Can be skipped when `flavor` is set.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "id": {
          "description": "Cluster identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "instances": {
          "description": "Array of instances (nodes) that comprise the cluster.",
          "items": {
            "$ref": "#/definitions/DatastoreInstance"
          },
          "type": "array"
        },
        "is_maintenance": {
          "description": "Indicates whether the cluster is in maintenance mode. In this mode, all user operations are disallowed (except deletion).",
          "type": "boolean"
        },
        "is_protected": {
          "description": "Indicates whether the cluster is in protection mode. If `true`, the cluster cannot be deleted.",
          "type": "boolean"
        },
        "log_platform": {
          "allOf": [
            {
              "$ref": "#/definitions/DatastoreLogPlatform"
            }
          ],
          "description": "Cluster logs export parameters."
        },
        "name": {
          "description": "Name of the cluster.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "node_count": {
          "description": "Number of nodes in the cluster.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "pooler": {
          "allOf": [
            {
              "$ref": "#/definitions/DatastorePooler"
            }
          ],
          "description": "Connection pooler settings. Available for PostgreSQL, PostgreSQL for 1C, PostgreSQL TimescaleDB."
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "123e4567e89b12d3a456426655440000",
          "format": "UUID",
          "type": "string"
        },
        "security_groups": {
          "description": "List of security groups for the cluster.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "type": "array"
        },
        "status": {
          "description": "Current cluster status.",
          "enum": [
            "ACTIVE",
            "DELETED",
            "DEGRADED",
            "ERROR",
            "PENDING_CREATE",
            "PENDING_UPDATE",
            "PENDING_DELETE",
            "RESIZING",
            "REBUILDING",
            "DISK_FULL"
          ],
          "example": "ACTIVE",
          "type": "string"
        },
        "subnet_id": {
          "description": "Unique identifier of the associated OpenStack network.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "topics_count": {
          "description": "Number of Kafka topics in the cluster. Applied only for Kafka clusters.",
          "type": "integer"
        },
        "type_id": {
          "description": "Unique identifier of the cluster type. Retrieved from the `datastore-type` resource.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "updated_at": {
          "description": "Date and time when the cluster was updated.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "datastore-type": {
      "properties": {
        "engine": {
          "description": "Engine of the cluster type.",
          "type": "string"
        },
        "id": {
          "description": "Cluster type identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "version": {
          "description": "Version of the cluster type.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "datastore-typeList": {
      "properties": {
        "datastore-types": {
          "items": {
            "$ref": "#/definitions/datastore-type"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "datastore-typeWrapper": {
      "properties": {
        "datastore-type": {
          "$ref": "#/definitions/datastore-type"
        }
      },
      "type": "object"
    },
    "datastoreList": {
      "properties": {
        "datastores": {
          "items": {
            "$ref": "#/definitions/datastore"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "datastoreWrapper": {
      "properties": {
        "datastore": {
          "$ref": "#/definitions/datastore"
        }
      },
      "type": "object"
    },
    "extension": {
      "properties": {
        "available_extension_id": {
          "description": "Unique identifier of the available extension. Retrieved from the `available-extensions` resource.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "created_at": {
          "description": "Date and time when the extension was created.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "database_id": {
          "description": "Unique identifier of the associated database for which the extension was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the extension was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "id": {
          "description": "Extension identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "123e4567e89b12d3a456426655440000",
          "format": "UUID",
          "type": "string"
        },
        "status": {
          "description": "Current extension status.",
          "enum": [
            "ACTIVE",
            "PENDING_CREATE",
            "PENDING_DELETE",
            "DELETED",
            "ERROR"
          ],
          "example": "ACTIVE",
          "type": "string"
        },
        "updated_at": {
          "description": "Date and time when the extension was updated.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "extensionList": {
      "properties": {
        "extensions": {
          "items": {
            "$ref": "#/definitions/extension"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "extensionWrapper": {
      "properties": {
        "extension": {
          "$ref": "#/definitions/extension"
        }
      },
      "type": "object"
    },
    "flavor": {
      "properties": {
        "datastore_type_ids": {
          "description": "List of cluster types that flavor should be available to. Retrieved from the `datastore-type` resource.",
          "items": {
            "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
            "format": "UUID",
            "type": "string"
          },
          "type": "array"
        },
        "description": {
          "description": "Description of the flavor.",
          "type": "string"
        },
        "disk": {
          "description": "Volume size in GB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "fl_size": {
          "description": "Type of the flavor.",
          "enum": [
            "standard",
            "high_freq",
            "dedicated_host"
          ],
          "example": "standard",
          "type": "string"
        },
        "host": {
          "$ref": "#/definitions/FlavorHost"
        },
        "id": {
          "description": "Flavor identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "name": {
          "description": "Name of the flavor.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "ram": {
          "description": "Amount of RAM in MB.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "subtype": {
          "description": "Subtype of the flavor.",
          "enum": [
            "STANDARD",
            "CPU",
            "MEMORY"
          ],
          "example": "STANDARD",
          "type": "string"
        },
        "vcpus": {
          "description": "Number of vCPUs.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        }
      },
      "type": "object"
    },
    "flavorList": {
      "properties": {
        "flavors": {
          "items": {
            "$ref": "#/definitions/flavor"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "flavorWrapper": {
      "properties": {
        "flavor": {
          "$ref": "#/definitions/flavor"
        }
      },
      "type": "object"
    },
    "grant": {
      "properties": {
        "created_at": {
          "description": "Date and time when the grant was created.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "database_id": {
          "description": "Unique identifier of the associated database for which the grant was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the grant was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "id": {
          "description": "Grant identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "123e4567e89b12d3a456426655440000",
          "format": "UUID",
          "type": "string"
        },
        "status": {
          "description": "Current grant status.",
          "enum": [
            "ACTIVE",
            "PENDING_CREATE",
            "PENDING_DELETE",
            "DELETED",
            "ERROR"
          ],
          "example": "ACTIVE",
          "type": "string"
        },
        "updated_at": {
          "description": "Date and time when the grant was updated.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "user_id": {
          "description": "Unique identifier of the associated user for which the grant was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        }
      },
      "type": "object"
    },
    "grantList": {
      "properties": {
        "grants": {
          "items": {
            "$ref": "#/definitions/grant"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "grantWrapper": {
      "properties": {
        "grant": {
          "$ref": "#/definitions/grant"
        }
      },
      "type": "object"
    },
    "limit": {
      "properties": {
        "disk_local_max": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "Maximum local disk size per node, in GB."
        },
        "disk_local_min": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "Minimum local disk size per node, in GB."
        },
        "disk_network_ultra_max": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "Maximum size of network volume allowed per node for this cluster type, expressed in gigabytes (GB). The requested disk size must be less than or equal to network_ultra_max while still respecting the disk-to-vCPU ratio."
        },
        "disk_network_ultra_min": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "Minimum size of network volume allowed per node for this cluster type, expressed in gigabytes (GB). The requested disk size must be greater than or equal to network_ultra_min and satisfy any disk-to-vCPU ratio."
        },
        "disk_types": {
          "description": "Available disk types.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "disk_vcpus_multiplier": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "Disk-to-vCPU ratio (in GB per vCPU). The requested disk must be at least `vcpus` * `disk_vcpus_multiplier` GB.\nExample: multiplier 32 ⇒ 1 vCPU → 32 GB, 2 vCPU → 64 GB, etc."
        },
        "ram_max": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "Maximum RAM allowed per node, in MB."
        },
        "ram_min": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "Minimum RAM allowed per node, in MB."
        },
        "ram_vcpus_multiplier": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "RAM-to-vCPU ratio (in GB per vCPU). The requested RAM must be at least `vCPUs` * `ram_vcpus_multiplier` GB.\nExample: multiplier 4 ⇒ 1 vCPU → 4 GB, 2 vCPU → 8 GiB, etc."
        },
        "vcpus_max": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "Maximum number of vCPUs allowed per node for this cluster type."
        },
        "vcpus_min": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "Minimum number of vCPUs allowed per node for this cluster type."
        },
        "vcpus_multiplier_min_threshold": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificLimit"
            }
          ],
          "description": "vCPU count threshold (inclusive) below which the multipliers do not apply. If `vcpus` ≤ `vcpus_multiplier_min_threshold`, both `ram_vcpus_multiplier` and `disk_vcpus_multiplier` are ignored; if `vcpus` > `vcpus_multiplier_min_threshold`, enforce RAM ≥ `vcpus` * `ram_vcpus_multiplier` and disk ≥ `vcpus` * `disk_vcpus_multiplier`.\nExample: `vcpus_multiplier_min_threshold` = 8 → at vCPUs <= 8 multipliers are off; at 9 vCPUs they apply."
        },
        "vcpus_steps": {
          "allOf": [
            {
              "$ref": "#/definitions/DBMSSpecificVcpusStepsLimit"
            }
          ],
          "description": "The step size for vCPU allocation. The requested number of vCPUs must be a multiple of this value. Example: if `vcpus_step` = 4, valid values are 4, 8, 12, etc."
        }
      },
      "type": "object"
    },
    "limitList": {
      "properties": {
        "limits": {
          "items": {
            "$ref": "#/definitions/limit"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "logical-replication-slot": {
      "properties": {
        "created_at": {
          "description": "Date and time when the logical replication slot was created.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "database_id": {
          "description": "Unique identifier of the associated database for which the logical replication slot was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the logical replication slot was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "id": {
          "description": "Logical replication slot identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "in_use": {
          "description": "Indicates whether logical replication slot is in use.",
          "type": "boolean"
        },
        "name": {
          "description": "Name of the logical replication slot.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "123e4567e89b12d3a456426655440000",
          "format": "UUID",
          "type": "string"
        },
        "size": {
          "description": "Amount of WAL retained by the logical replication slot, in bytes.",
          "type": "integer"
        },
        "status": {
          "description": "Current logical replication slot status.",
          "enum": [
            "ACTIVE",
            "PENDING_CREATE",
            "PENDING_DELETE",
            "DELETED",
            "ERROR"
          ],
          "example": "ACTIVE",
          "type": "string"
        },
        "updated_at": {
          "description": "Date and time when the logical replication slot was updated.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "logical-replication-slotList": {
      "properties": {
        "logical-replication-slots": {
          "items": {
            "$ref": "#/definitions/logical-replication-slot"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "logical-replication-slotWrapper": {
      "properties": {
        "logical-replication-slot": {
          "$ref": "#/definitions/logical-replication-slot"
        }
      },
      "type": "object"
    },
    "logs": {
      "properties": {
        "datastore_id": {
          "description": "Cluster identifier.",
          "type": "string"
        },
        "ip": {
          "description": "IP of the cluster instance on which query was executed.",
          "type": "string"
        },
        "labels": {
          "description": "Dictionary object with database and users.",
          "example": {
            "key": "value"
          },
          "type": "object"
        },
        "ts": {
          "description": "Single timestamp that marks the precise moment for which the metric is returned.",
          "type": "number"
        },
        "value": {
          "description": "Database query executed at the specified timestamp.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "logsWrapper": {
      "properties": {
        "logs": {
          "$ref": "#/definitions/logs"
        }
      },
      "type": "object"
    },
    "metrics": {
      "properties": {
        "*": {
          "additionalProperties": {
            "$ref": "#/definitions/MetricResponseModel"
          },
          "description": "Metric name.",
          "type": "object"
        },
        "step": {
          "description": "Time interval, in seconds, between consecutive data points.",
          "type": "number"
        }
      },
      "type": "object"
    },
    "metricsWrapper": {
      "properties": {
        "metrics": {
          "$ref": "#/definitions/metrics"
        }
      },
      "type": "object"
    },
    "prometheus-metrics-token": {
      "properties": {
        "created_at": {
          "description": "Date and time when the prometheus metrics token was created.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "id": {
          "description": "Prometheus metrics token identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "name": {
          "description": "Name of the prometheus metrics token.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "123e4567e89b12d3a456426655440000",
          "format": "UUID",
          "type": "string"
        },
        "updated_at": {
          "description": "Date and time when the prometheus metrics token was updated.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "value": {
          "description": "Token value to access prometheus metrics.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "prometheus-metrics-tokenList": {
      "properties": {
        "prometheus-metrics-tokens": {
          "items": {
            "$ref": "#/definitions/prometheus-metrics-token"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "prometheus-metrics-tokenWrapper": {
      "properties": {
        "prometheus-metrics-token": {
          "$ref": "#/definitions/prometheus-metrics-token"
        }
      },
      "type": "object"
    },
    "quota": {
      "properties": {
        "acls": {
          "description": "Quota for Access Control Lists.",
          "type": "integer"
        },
        "cores": {
          "description": "Quota for vcpus.",
          "type": "integer"
        },
        "databases": {
          "description": "Quota for databases.",
          "type": "integer"
        },
        "datastores": {
          "description": "Quota for clusters.",
          "type": "integer"
        },
        "disk_local": {
          "description": "Quota for local disk.",
          "type": "integer"
        },
        "disk_network_ultra": {
          "description": "Quota for network volume.",
          "type": "integer"
        },
        "firewall_rules": {
          "description": "Quota for firewall rules.",
          "type": "integer"
        },
        "in_use_acls": {
          "description": "Number of Access Control Lists that is currently used.",
          "type": "integer"
        },
        "in_use_cores": {
          "description": "Number of vcpus that is currently used.",
          "type": "integer"
        },
        "in_use_databases": {
          "description": "Number of databases that is currently used.",
          "type": "integer"
        },
        "in_use_datastores": {
          "description": "Number of clusters that is currently used.",
          "type": "integer"
        },
        "in_use_disk_local": {
          "description": "Number of local disk that is currently used.",
          "type": "integer"
        },
        "in_use_disk_network_ultra": {
          "description": "Number of network volume that is currently used.",
          "type": "integer"
        },
        "in_use_firewall_rules": {
          "description": "Number of firewall rules that is currently used.",
          "type": "integer"
        },
        "in_use_local_gb": {
          "description": "Number of local disk GB that is currently used.",
          "type": "integer"
        },
        "in_use_prometheus_metrics_tokens": {
          "description": "Number of prometheus metrics tokens that is currently used.",
          "type": "integer"
        },
        "in_use_ram": {
          "description": "Number of ram that is currently used.",
          "type": "integer"
        },
        "in_use_topics": {
          "description": "Number of topics that is currently used.",
          "type": "integer"
        },
        "in_use_users": {
          "description": "Number of users that is currently used.",
          "type": "integer"
        },
        "local_gb": {
          "description": "Quota for local disk.",
          "type": "integer"
        },
        "prometheus_metrics_tokens": {
          "description": "Quota for prometheus metrics tokens.",
          "type": "integer"
        },
        "ram": {
          "description": "Quota for ram.",
          "type": "integer"
        },
        "topics": {
          "description": "Quota for topics.",
          "type": "integer"
        },
        "users": {
          "description": "Quota for users.",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "quotaList": {
      "properties": {
        "quotas": {
          "items": {
            "$ref": "#/definitions/quota"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "topic": {
      "properties": {
        "created_at": {
          "description": "Date and time when the topic was created.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the topic was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "id": {
          "description": "Topic identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "name": {
          "description": "Name of the topic.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "partitions": {
          "description": "Number of partitions for the topic. For an active topic only increasing is possible, decreasing typically requires data migration or creating a new topic.",
          "example": 1,
          "minimum": 1,
          "type": "integer"
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "123e4567e89b12d3a456426655440000",
          "format": "UUID",
          "type": "string"
        },
        "status": {
          "description": "Current topic status.",
          "enum": [
            "ACTIVE",
            "PENDING_CREATE",
            "PENDING_UPDATE",
            "PENDING_DELETE",
            "DELETED",
            "ERROR"
          ],
          "example": "ACTIVE",
          "type": "string"
        },
        "updated_at": {
          "description": "Date and time when the topic was updated.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "topicList": {
      "properties": {
        "topics": {
          "items": {
            "$ref": "#/definitions/topic"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "topicWrapper": {
      "properties": {
        "topic": {
          "$ref": "#/definitions/topic"
        }
      },
      "type": "object"
    },
    "user": {
      "properties": {
        "created_at": {
          "description": "Date and time when the user was created.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        },
        "datastore_id": {
          "description": "Unique identifier of the associated cluster for which the user was created.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "id": {
          "description": "User identifier.",
          "example": "20d7bcf4-f8d6-4bf6-b8f6-46cb440a87f4",
          "format": "UUID",
          "type": "string"
        },
        "name": {
          "description": "Name of the user. For MySQL sync and MySQL semi-sync clusters, the username cannot exceed `32` characters. For all other cluster types, the username is limited to `63` characters.",
          "example": "Name",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "project_id": {
          "description": "Unique identifier of the associated project.",
          "example": "123e4567e89b12d3a456426655440000",
          "format": "UUID",
          "type": "string"
        },
        "status": {
          "description": "Current user status.",
          "enum": [
            "ACTIVE",
            "PENDING_CREATE",
            "PENDING_UPDATE",
            "PENDING_DELETE",
            "DELETED",
            "ERROR"
          ],
          "example": "ACTIVE",
          "type": "string"
        },
        "updated_at": {
          "description": "Date and time when the user was updated.",
          "example": "1970-01-01T00:00:00",
          "format": "datetime",
          "type": "string"
        }
      },
      "type": "object"
    },
    "userList": {
      "properties": {
        "users": {
          "items": {
            "$ref": "#/definitions/user"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "userWrapper": {
      "properties": {
        "user": {
          "$ref": "#/definitions/user"
        }
      },
      "type": "object"
    }
  },
  "info": {
    "description": "Managing databases: creating and scaling database clusters up, restoring from backup, managing users, and more",
    "title": "Managed Databases API",
    "version": "v1.0"
  },
  "paths": {
    "/acls": {
      "get": {
        "description": "Returns a list of Kafka Access Control Lists.",
        "operationId": "getACLs",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `datastore_id`.",
            "in": "query",
            "name": "datastore_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `pattern`.",
            "in": "query",
            "name": "pattern",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `pattern_type`.",
            "in": "query",
            "name": "pattern_type",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `status`.",
            "in": "query",
            "name": "status",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `user_id`.",
            "in": "query",
            "name": "user_id",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Access Control Lists.",
            "schema": {
              "$ref": "#/definitions/aclList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List Access Control Lists",
        "tags": [
          "Access Control Lists"
        ]
      },
      "post": {
        "description": "Creates a new Kafka Access Control List.",
        "operationId": "createACL",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ACLPOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New Access Control List creation has been started.",
            "schema": {
              "$ref": "#/definitions/aclWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create Access Control List",
        "tags": [
          "Access Control Lists"
        ]
      }
    },
    "/acls/{acl_id}": {
      "delete": {
        "description": "Deletes a Kafka Access Control List.",
        "operationId": "deleteACL",
        "parameters": [
          {
            "description": "Access Control List identifier.",
            "in": "path",
            "name": "acl_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The deletion of Access Control List has been started."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Access Control List has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete Access Control List",
        "tags": [
          "Access Control Lists"
        ]
      },
      "get": {
        "description": "Returns a Kafka Access Control list.",
        "operationId": "getACL",
        "parameters": [
          {
            "description": "Access Control List identifier.",
            "in": "path",
            "name": "acl_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The Access Control List has been returned.",
            "schema": {
              "$ref": "#/definitions/aclWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Access Control List has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get Access Control List",
        "tags": [
          "Access Control Lists"
        ]
      },
      "put": {
        "description": "Updates a Kafka Access Control List.",
        "operationId": "updateACL",
        "parameters": [
          {
            "description": "Access Control List identifier.",
            "in": "path",
            "name": "acl_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ACLPUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The update of Access Control List has been started.",
            "schema": {
              "$ref": "#/definitions/aclWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Access Control List has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update Access Control List",
        "tags": [
          "Access Control Lists"
        ]
      }
    },
    "/actions": {
      "get": {
        "description": "Returns a list of cluster actions.",
        "operationId": "getActions",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `status`.",
            "in": "query",
            "name": "status",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `request_id`.",
            "in": "query",
            "name": "request_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `datastore_id`.",
            "in": "query",
            "name": "datastore_id",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of actions.",
            "schema": {
              "$ref": "#/definitions/actionList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List actions",
        "tags": [
          "Actions"
        ]
      }
    },
    "/actions/{action_id}": {
      "get": {
        "description": "Returns a specific cluster action.",
        "operationId": "getAction",
        "parameters": [
          {
            "description": "Action identifier.",
            "in": "path",
            "name": "action_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The action has been returned.",
            "schema": {
              "$ref": "#/definitions/actionWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Action has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get action",
        "tags": [
          "Actions"
        ]
      }
    },
    "/available-extensions": {
      "get": {
        "description": "Returns a list of available extensions.",
        "operationId": "getAvailableExtensions",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `datastore_type_id`.",
            "in": "query",
            "name": "datastore_type_id",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of available extensions.",
            "schema": {
              "$ref": "#/definitions/available-extensionList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List available extensions",
        "tags": [
          "Available extensions"
        ]
      },
      "post": {
        "deprecated": true,
        "description": "Creates a new available extension.",
        "operationId": "createAvailableExtension",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AvailableExtensionPOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New available extension has been created.",
            "schema": {
              "$ref": "#/definitions/available-extensionWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create available extension",
        "tags": [
          "Available extensions"
        ]
      }
    },
    "/available-extensions/{available_extension_id}": {
      "delete": {
        "deprecated": true,
        "description": "Deletes an available extension and all related records.",
        "operationId": "deleteAvailableExtension",
        "parameters": [
          {
            "description": "Available extension identifier.",
            "in": "path",
            "name": "available_extension_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The available extension has been deleted."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Available extension has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete available extension",
        "tags": [
          "Available extensions"
        ]
      },
      "get": {
        "description": "Returns an available extension.",
        "operationId": "getAvailableExtension",
        "parameters": [
          {
            "description": "Available extension identifier.",
            "in": "path",
            "name": "available_extension_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The available extension has been returned.",
            "schema": {
              "$ref": "#/definitions/available-extensionWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Available extension has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get available extension",
        "tags": [
          "Available extensions"
        ]
      },
      "put": {
        "deprecated": true,
        "description": "Updates an available extension.",
        "operationId": "updateAvailableExtension",
        "parameters": [
          {
            "description": "Available extension identifier.",
            "in": "path",
            "name": "available_extension_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AvailableExtensionPUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The available extension has been updated.",
            "schema": {
              "$ref": "#/definitions/available-extensionWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Available extension has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update available extension",
        "tags": [
          "Available extensions"
        ]
      }
    },
    "/capabilities": {
      "get": {
        "description": "Returns a list of service capabilities.",
        "operationId": "getCapabilitiess",
        "responses": {
          "200": {
            "description": "List of service capabilities.",
            "schema": {
              "$ref": "#/definitions/CapabilitiesResponseList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List capabilities",
        "tags": [
          "Capabilities"
        ]
      }
    },
    "/configuration-parameters": {
      "get": {
        "description": "Returns a list of configuration parameters.",
        "operationId": "getConfigurationParameters",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `datastore_type_id`.",
            "in": "query",
            "name": "datastore_type_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `ram`.",
            "in": "query",
            "name": "ram",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `vcpus`.",
            "in": "query",
            "name": "vcpus",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `disk`.",
            "in": "query",
            "name": "disk",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of configuration parameters.",
            "schema": {
              "$ref": "#/definitions/configuration-parameterList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List configuration parameters",
        "tags": [
          "Configuration parameters"
        ]
      },
      "post": {
        "deprecated": true,
        "description": "Creates new configuration parameter.",
        "operationId": "createConfigurationParameter",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ConfigurationParameterPOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New configuration parameter has been created.",
            "schema": {
              "$ref": "#/definitions/configuration-parameterWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create configuration parameter",
        "tags": [
          "Configuration parameters"
        ]
      }
    },
    "/configuration-parameters/{configuration_parameter_id}": {
      "delete": {
        "deprecated": true,
        "description": "Deletes a configuration parameter.",
        "operationId": "deleteConfigurationParameter",
        "parameters": [
          {
            "description": "Configuration parameter identifier.",
            "in": "path",
            "name": "configuration_parameter_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The configuration parameter has been deleted."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Configuration parameter has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete configuration parameter",
        "tags": [
          "Configuration parameters"
        ]
      },
      "get": {
        "description": "Returns a configuration parameter.",
        "operationId": "getConfigurationParameter",
        "parameters": [
          {
            "description": "Configuration parameter identifier.",
            "in": "path",
            "name": "configuration_parameter_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The configuration parameter has been returned.",
            "schema": {
              "$ref": "#/definitions/configuration-parameterWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Configuration parameter has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get configuration parameter",
        "tags": [
          "Configuration parameters"
        ]
      }
    },
    "/databases": {
      "get": {
        "description": "Returns a list of databases in a cluster.",
        "operationId": "getDatabases",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `datastore_id`.",
            "in": "query",
            "name": "datastore_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `status`.",
            "in": "query",
            "name": "status",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of databases.",
            "schema": {
              "$ref": "#/definitions/databaseList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List databases",
        "tags": [
          "Databases"
        ]
      },
      "post": {
        "description": "Creates a new database in a cluster.",
        "operationId": "createDatabase",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DatabasePOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New database creation has been started.",
            "schema": {
              "$ref": "#/definitions/databaseWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create database",
        "tags": [
          "Databases"
        ]
      }
    },
    "/databases/{database_id}": {
      "delete": {
        "description": "Deletes a database.",
        "operationId": "deleteDatabase",
        "parameters": [
          {
            "description": "Database identifier.",
            "in": "path",
            "name": "database_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The database has been deleted."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Database has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete database",
        "tags": [
          "Databases"
        ]
      },
      "get": {
        "description": "Returns a database.",
        "operationId": "getDatabase",
        "parameters": [
          {
            "description": "Database identifier.",
            "in": "path",
            "name": "database_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The database has been returned.",
            "schema": {
              "$ref": "#/definitions/databaseWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Database has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get database",
        "tags": [
          "Databases"
        ]
      },
      "put": {
        "description": "Updates database parameters.",
        "operationId": "updateDatabase",
        "parameters": [
          {
            "description": "Database identifier.",
            "in": "path",
            "name": "database_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DatabasePUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The update of database has been started.",
            "schema": {
              "$ref": "#/definitions/databaseWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Database has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update database",
        "tags": [
          "Databases"
        ]
      }
    },
    "/datastore-types": {
      "get": {
        "description": "Returns a list of available cluster types.",
        "operationId": "getDatastoreTypes",
        "responses": {
          "200": {
            "description": "List of cluster types.",
            "schema": {
              "$ref": "#/definitions/datastore-typeList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List cluster types",
        "tags": [
          "Cluster types"
        ]
      }
    },
    "/datastore-types/{datastore_type_id}": {
      "get": {
        "description": "Returns cluster type.",
        "operationId": "getDatastoreType",
        "parameters": [
          {
            "description": "Cluster type identifier.",
            "in": "path",
            "name": "datastore_type_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The cluster type has been returned.",
            "schema": {
              "$ref": "#/definitions/datastore-typeWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster type has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get cluster type",
        "tags": [
          "Cluster types"
        ]
      }
    },
    "/datastores": {
      "get": {
        "description": "Returns list of clusters.",
        "operationId": "getDatastores",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `status`.",
            "in": "query",
            "name": "status",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `enabled`.",
            "in": "query",
            "name": "enabled",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `type_id`.",
            "in": "query",
            "name": "type_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `flavor_id`.",
            "in": "query",
            "name": "flavor_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `subnet_id`.",
            "in": "query",
            "name": "subnet_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `allow_restore`.",
            "in": "query",
            "name": "allow_restore",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `is_maintenance`.",
            "in": "query",
            "name": "is_maintenance",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `is_protected`.",
            "in": "query",
            "name": "is_protected",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `deleted`.",
            "in": "query",
            "name": "deleted",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of clusters.",
            "schema": {
              "$ref": "#/definitions/datastoreList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List clusters",
        "tags": [
          "Clusters"
        ]
      },
      "post": {
        "description": "Creates a new cluster.",
        "operationId": "createDatastore",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DatastorePOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New cluster creation has been started.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create cluster",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/count": {
      "get": {
        "description": "Returns the number of clusters grouped by their type.",
        "operationId": "getDatastoresCount",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `status`.",
            "in": "query",
            "name": "status",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `enabled`.",
            "in": "query",
            "name": "enabled",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `type_id`.",
            "in": "query",
            "name": "type_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `flavor_id`.",
            "in": "query",
            "name": "flavor_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `subnet_id`.",
            "in": "query",
            "name": "subnet_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `allow_restore`.",
            "in": "query",
            "name": "allow_restore",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `is_maintenance`.",
            "in": "query",
            "name": "is_maintenance",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `is_protected`.",
            "in": "query",
            "name": "is_protected",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `deleted`.",
            "in": "query",
            "name": "deleted",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The number of clusters has been returned.",
            "schema": {
              "$ref": "#/definitions/DatastoresCount"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Get clusters count",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}": {
      "delete": {
        "description": "Deletes cluster with all related entities.",
        "operationId": "deleteDatastore",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The deletion of cluster has been started."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete cluster",
        "tags": [
          "Clusters"
        ]
      },
      "get": {
        "description": "Returns a cluster.",
        "operationId": "getDatastore",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The cluster has been returned.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get cluster",
        "tags": [
          "Clusters"
        ]
      },
      "put": {
        "description": "Updates cluster parameters.",
        "operationId": "updateDatastore",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DatastorePUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The cluster has been updated.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update cluster",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/config": {
      "put": {
        "description": "Changes cluster configuration parameters. Send `None` as value to\nreset parameter to default value.",
        "operationId": "updateDatastoreConfig",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ConfigChange"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The update of cluster config has been started.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Change cluster configuration parameters",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/database-metrics": {
      "get": {
        "description": "Returns all metrics of the cluster databases.",
        "operationId": "getDatastoreDBMetrics",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter the list result by the `start`.",
            "in": "query",
            "name": "start",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `end`.",
            "in": "query",
            "name": "end",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The cluster databases metrics have been returned.",
            "schema": {
              "$ref": "#/definitions/metricsWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get cluster databases metrics",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/firewall": {
      "put": {
        "description": "Updates cluster firewall rules.",
        "operationId": "updateDatastoreFirewall",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DatastoreFirewallPUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The update of cluster firewall has been started.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update cluster firewall rules",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/log-platform": {
      "delete": {
        "description": "Disables cluster logs export.",
        "operationId": "deleteDatastoreLogPlatform",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The disabling of cluster logs export has been started."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Disable cluster logs export",
        "tags": [
          "Clusters"
        ]
      },
      "put": {
        "description": "Enables cluster logs export.",
        "operationId": "updateDatastoreLogPlatform",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DatastoreLogPlatformPOST"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The enable of cluster logs export has been started.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Enable cluster logs export",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/logs": {
      "get": {
        "description": "Returns all cluster logs. Applied only for MySQL clusters.",
        "operationId": "getDatastoreLogs",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter the list result by the `job`.",
            "in": "query",
            "name": "job",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `start`.",
            "in": "query",
            "name": "start",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `end`.",
            "in": "query",
            "name": "end",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `limit`.",
            "in": "query",
            "name": "limit",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `ips`.",
            "in": "query",
            "name": "ips",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `databases`.",
            "in": "query",
            "name": "databases",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The cluster logs have been returned.",
            "schema": {
              "$ref": "#/definitions/logsWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get cluster logs",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/metrics": {
      "get": {
        "description": "Returns all metrics of the cluster.",
        "operationId": "getDatastoreMetrics",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "description": "Filter the list result by the `start`.",
            "in": "query",
            "name": "start",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `end`.",
            "in": "query",
            "name": "end",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The cluster metrics have been returned.",
            "schema": {
              "$ref": "#/definitions/metricsWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get cluster metrics",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/password": {
      "put": {
        "description": "Updates cluster password. Applied only for Redis clusters.",
        "operationId": "updateDatastorePassword",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DatastorePasswordPUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The update of cluster password has been started.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update cluster password",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/pooler": {
      "put": {
        "description": "Updates cluster pooler settings.",
        "operationId": "updateDatastorePooler",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DatastorePoolerPUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The update of cluster pooler has been started.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update cluster pooler settings",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/protection": {
      "put": {
        "description": "Enables or disables protection mode for the cluster.\nWhen enabled, the cluster cannot be deleted.\nSending `true` enables it; sending `false` disables it via the same\nendpoint.",
        "operationId": "updateDatastoreProtectionMode",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ProtectionMode"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The cluster protection mode has been updated.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Set protection mode",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/resize": {
      "post": {
        "description": "Changes cluster infrastructure configuration.",
        "operationId": "resizeDatastore",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DatastoreResizePOST"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The resize of cluster has been started.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found."
          }
        },
        "summary": "Resize cluster",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/datastores/{datastore_id}/security-groups": {
      "put": {
        "description": "Updates cluster security groups.",
        "operationId": "updateDatastoreSecurityGroups",
        "parameters": [
          {
            "description": "Cluster identifier.",
            "in": "path",
            "name": "datastore_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DatastoreUpdateSecurityGroups"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The update of cluster security groups has been started.",
            "schema": {
              "$ref": "#/definitions/datastoreWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Cluster has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update cluster security groups",
        "tags": [
          "Clusters"
        ]
      }
    },
    "/extensions": {
      "get": {
        "description": "Returns a list of extensions.",
        "operationId": "getExtensions",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `available_extension_id`.",
            "in": "query",
            "name": "available_extension_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `datastore_id`.",
            "in": "query",
            "name": "datastore_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `database_id`.",
            "in": "query",
            "name": "database_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `status`.",
            "in": "query",
            "name": "status",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of extensions.",
            "schema": {
              "$ref": "#/definitions/extensionList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List extensions",
        "tags": [
          "Extensions"
        ]
      },
      "post": {
        "description": "Creates a new extension.",
        "operationId": "createExtension",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExtensionPOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New extension has been created.",
            "schema": {
              "$ref": "#/definitions/extensionWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create extension",
        "tags": [
          "Extensions"
        ]
      }
    },
    "/extensions/{extension_id}": {
      "delete": {
        "description": "Deletes an extension.",
        "operationId": "deleteExtension",
        "parameters": [
          {
            "description": "Extension identifier.",
            "in": "path",
            "name": "extension_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The extension has been deleted."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Extension has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete extension",
        "tags": [
          "Extensions"
        ]
      },
      "get": {
        "description": "Returns an extension.",
        "operationId": "getExtension",
        "parameters": [
          {
            "description": "Extension identifier.",
            "in": "path",
            "name": "extension_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The extension has been returned.",
            "schema": {
              "$ref": "#/definitions/extensionWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Extension has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get extension",
        "tags": [
          "Extensions"
        ]
      }
    },
    "/flavors": {
      "get": {
        "description": "Returns a list of flavors.",
        "operationId": "getFlavors",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `fl_size`.",
            "in": "query",
            "name": "fl_size",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of flavors.",
            "schema": {
              "$ref": "#/definitions/flavorList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List flavors",
        "tags": [
          "Flavors"
        ]
      },
      "post": {
        "deprecated": true,
        "description": "Creates a new flavor.",
        "operationId": "createFlavor",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FlavorPOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New flavor has been created.",
            "schema": {
              "$ref": "#/definitions/flavorWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create flavor",
        "tags": [
          "Flavors"
        ]
      }
    },
    "/flavors/{flavor_id}": {
      "delete": {
        "deprecated": true,
        "description": "Deletes a flavor.",
        "operationId": "deleteFlavor",
        "parameters": [
          {
            "description": "Flavor identifier.",
            "in": "path",
            "name": "flavor_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The flavor has been deleted."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Flavor has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete flavor",
        "tags": [
          "Flavors"
        ]
      },
      "get": {
        "description": "Returns a flavor.",
        "operationId": "getFlavor",
        "parameters": [
          {
            "description": "Flavor identifier.",
            "in": "path",
            "name": "flavor_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The flavor has been returned.",
            "schema": {
              "$ref": "#/definitions/flavorWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Flavor has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get flavor",
        "tags": [
          "Flavors"
        ]
      },
      "put": {
        "deprecated": true,
        "description": "Updates a flavor.",
        "operationId": "updateFlavor",
        "parameters": [
          {
            "description": "Flavor identifier.",
            "in": "path",
            "name": "flavor_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FlavorPUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The flavor has been updated.",
            "schema": {
              "$ref": "#/definitions/flavorWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Flavor has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update flavor",
        "tags": [
          "Flavors"
        ]
      }
    },
    "/flavors/{flavor_id}/host": {
      "delete": {
        "deprecated": true,
        "description": "Deletes a flavor host.",
        "operationId": "deleteFlavorHost",
        "responses": {
          "204": {
            "description": "The flavor host has been deleted."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Flavor host has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete flavor host",
        "tags": [
          "Flavors"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "flavor_id",
          "required": true,
          "type": "string"
        }
      ],
      "put": {
        "deprecated": true,
        "description": "Updates flavor host.",
        "operationId": "updateFlavorHost",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FlavorHostPUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The flavor host has been updated.",
            "schema": {
              "$ref": "#/definitions/flavorWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Flavor host has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update flavor host",
        "tags": [
          "Flavors"
        ]
      }
    },
    "/floating-ips": {
      "delete": {
        "description": "Deassociates and deletes a floating IP from provided instance.",
        "operationId": "deleteFloatingIP",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FloatingIPDelete"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "The deletion of the floating IP has been started."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Delete floating IP",
        "tags": [
          "Floating ips"
        ]
      },
      "post": {
        "description": "Creates and associates a floating IP with provided instance.",
        "operationId": "createFloatingIP",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FloatingIPPost"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "New floating IP creation has been started."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create floating IP",
        "tags": [
          "Floating ips"
        ]
      }
    },
    "/grants": {
      "get": {
        "description": "Returns a list of database grants.",
        "operationId": "getGrants",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `datastore_id`.",
            "in": "query",
            "name": "datastore_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `database_id`.",
            "in": "query",
            "name": "database_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `user_id`.",
            "in": "query",
            "name": "user_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `status`.",
            "in": "query",
            "name": "status",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of database grants.",
            "schema": {
              "$ref": "#/definitions/grantList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List database grants",
        "tags": [
          "Grants"
        ]
      },
      "post": {
        "description": "Creates a new database grant.",
        "operationId": "createGrant",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/GrantPOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New database grant creation has been started.",
            "schema": {
              "$ref": "#/definitions/grantWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create database grant",
        "tags": [
          "Grants"
        ]
      }
    },
    "/grants/{grant_id}": {
      "delete": {
        "description": "Deletes a database grant.",
        "operationId": "deleteGrant",
        "parameters": [
          {
            "description": "Grant identifier.",
            "in": "path",
            "name": "grant_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The deletion of database grant has been started."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Grant has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete grant",
        "tags": [
          "Grants"
        ]
      },
      "get": {
        "description": "Returns a database grant.",
        "operationId": "getGrant",
        "parameters": [
          {
            "description": "Grant identifier.",
            "in": "path",
            "name": "grant_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The database grant has been returned.",
            "schema": {
              "$ref": "#/definitions/grantWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Grant has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get grant",
        "tags": [
          "Grants"
        ]
      }
    },
    "/limits": {
      "get": {
        "description": "Returns a list of cluster limits.",
        "operationId": "getLimits",
        "responses": {
          "200": {
            "description": "List of cluster limits.",
            "schema": {
              "$ref": "#/definitions/limitList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List limits",
        "tags": [
          "Limits"
        ]
      }
    },
    "/logical-replication-slots": {
      "get": {
        "description": "Returns a list of logical replication slots.",
        "operationId": "getLogicalReplicationSlots",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `datastore_id`.",
            "in": "query",
            "name": "datastore_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `database_id`.",
            "in": "query",
            "name": "database_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `status`.",
            "in": "query",
            "name": "status",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `in_use`.",
            "in": "query",
            "name": "in_use",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of logical replication slots.",
            "schema": {
              "$ref": "#/definitions/logical-replication-slotList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List logical replication slots",
        "tags": [
          "Logical replication slots"
        ]
      },
      "post": {
        "description": "Creates a new logical replication slot.",
        "operationId": "createLogicalReplicationSlot",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/LogicalReplicationSlotPOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New logical replication slot creation has been started.",
            "schema": {
              "$ref": "#/definitions/logical-replication-slotWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create logical replication slot",
        "tags": [
          "Logical replication slots"
        ]
      }
    },
    "/logical-replication-slots/{logical_replication_slot_id}": {
      "delete": {
        "description": "Deletes a logical replication slot.",
        "operationId": "deleteLogicalReplicationSlot",
        "parameters": [
          {
            "description": "Logical replication slot identifier.",
            "in": "path",
            "name": "logical_replication_slot_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The deletion of logical replication slot has been started."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Logical replication slot has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete logical replication slot",
        "tags": [
          "Logical replication slots"
        ]
      },
      "get": {
        "description": "Returns a logical replication slot.",
        "operationId": "getLogicalReplicationSlot",
        "parameters": [
          {
            "description": "Logical replication slot identifier.",
            "in": "path",
            "name": "logical_replication_slot_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The logical replication slot has been returned.",
            "schema": {
              "$ref": "#/definitions/logical-replication-slotWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Logical replication slot has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get logical replication slot",
        "tags": [
          "Logical replication slots"
        ]
      }
    },
    "/prometheus-metrics-tokens": {
      "get": {
        "description": "Returns a list of prometheus metric tokens.",
        "operationId": "getPrometheusMetricsTokens",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `value`.",
            "in": "query",
            "name": "value",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of prometheus metric tokens.",
            "schema": {
              "$ref": "#/definitions/prometheus-metrics-tokenList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List prometheus metrics tokens",
        "tags": [
          "Prometheus metrics tokens"
        ]
      },
      "post": {
        "description": "Creates a new prometheus metrics token.",
        "operationId": "createPrometheusMetricsToken",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PrometheusMetricsTokenPOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New prometheus metrics token has been created.",
            "schema": {
              "$ref": "#/definitions/prometheus-metrics-tokenWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Issue prometheus metrics token",
        "tags": [
          "Prometheus metrics tokens"
        ]
      }
    },
    "/prometheus-metrics-tokens/{prometheus_metrics_token_id}": {
      "delete": {
        "description": "Deletes a prometheus metrics token.",
        "operationId": "deletePrometheusMetricsToken",
        "responses": {
          "204": {
            "description": "The prometheus metrics token has been deleted."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Prometheus metrics token has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Revoke prometheus metrics token",
        "tags": [
          "Prometheus metrics tokens"
        ]
      },
      "get": {
        "description": "Returns a prometheus metrics token.",
        "operationId": "getPrometheusMetricsToken",
        "responses": {
          "200": {
            "description": "The prometheus metrics token has been returned.",
            "schema": {
              "$ref": "#/definitions/prometheus-metrics-tokenWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Prometheus metrics token has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get prometheus metrics token resource",
        "tags": [
          "Prometheus metrics tokens"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "prometheus_metrics_token_id",
          "required": true,
          "type": "string"
        }
      ],
      "put": {
        "description": "Updates prometheus metrics token parameters.",
        "operationId": "updatePrometheusMetricsToken",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PrometheusMetricsTokenPUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The prometheus metrics token has been updated.",
            "schema": {
              "$ref": "#/definitions/prometheus-metrics-tokenWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Prometheus metrics token has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update prometheus metrics token",
        "tags": [
          "Prometheus metrics tokens"
        ]
      }
    },
    "/quotas": {
      "get": {
        "description": "Returns a list of project quotas.",
        "operationId": "getQuotas",
        "responses": {
          "200": {
            "description": "List of project quotas.",
            "schema": {
              "$ref": "#/definitions/quotaList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Get quota",
        "tags": [
          "Quotas"
        ]
      }
    },
    "/topics": {
      "get": {
        "description": "Returns list of Kafka topics.",
        "operationId": "getTopics",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `datastore_id`.",
            "in": "query",
            "name": "datastore_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `status`.",
            "in": "query",
            "name": "status",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of databases.",
            "schema": {
              "$ref": "#/definitions/topicList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List topics",
        "tags": [
          "Topics"
        ]
      },
      "post": {
        "description": "Creates a new Kafka topic.",
        "operationId": "createTopic",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TopicPOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New Kafka topic creation has been started.",
            "schema": {
              "$ref": "#/definitions/topicWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create topic",
        "tags": [
          "Topics"
        ]
      }
    },
    "/topics/{topic_id}": {
      "delete": {
        "description": "Deletes a Kafka topic.",
        "operationId": "deleteTopic",
        "parameters": [
          {
            "description": "Topic identifier.",
            "in": "path",
            "name": "topic_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The deletion of Kafka topic has been started."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Topic has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete topic",
        "tags": [
          "Topics"
        ]
      },
      "get": {
        "description": "Returns a Kafka topic.",
        "operationId": "getTopic",
        "parameters": [
          {
            "description": "Topic identifier.",
            "in": "path",
            "name": "topic_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The topic has been returned.",
            "schema": {
              "$ref": "#/definitions/topicWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Topic has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get topic",
        "tags": [
          "Topics"
        ]
      },
      "put": {
        "description": "Updates Kafka topic parameters.",
        "operationId": "updateTopic",
        "parameters": [
          {
            "description": "Topic identifier.",
            "in": "path",
            "name": "topic_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TopicPUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The update of Kafka topic has been started.",
            "schema": {
              "$ref": "#/definitions/topicWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Topic has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update topic",
        "tags": [
          "Topics"
        ]
      }
    },
    "/users": {
      "get": {
        "description": "Returns a list of database users.",
        "operationId": "getUsers",
        "parameters": [
          {
            "description": "Filter the list result by the `id`.",
            "in": "query",
            "name": "id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `project_id`.",
            "in": "query",
            "name": "project_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `name`.",
            "in": "query",
            "name": "name",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `datastore_id`.",
            "in": "query",
            "name": "datastore_id",
            "type": "string"
          },
          {
            "description": "Filter the list result by the `status`.",
            "in": "query",
            "name": "status",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "List of database users.",
            "schema": {
              "$ref": "#/definitions/userList"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "List database users",
        "tags": [
          "Users"
        ]
      },
      "post": {
        "description": "Creates a new database user.",
        "operationId": "createUser",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UserPOST"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "New database user creation has been started.",
            "schema": {
              "$ref": "#/definitions/userWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          }
        },
        "summary": "Create database user",
        "tags": [
          "Users"
        ]
      }
    },
    "/users/{user_id}": {
      "delete": {
        "description": "Deletes a database user.",
        "operationId": "deleteUser",
        "parameters": [
          {
            "description": "User identifier.",
            "in": "path",
            "name": "user_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "The deletion of database user has been started."
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Database user has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Delete database user",
        "tags": [
          "Users"
        ]
      },
      "get": {
        "description": "Returns a database user.",
        "operationId": "getUser",
        "parameters": [
          {
            "description": "User identifier.",
            "in": "path",
            "name": "user_id",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "The database user has been returned.",
            "schema": {
              "$ref": "#/definitions/userWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Database user has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Get database user",
        "tags": [
          "Users"
        ]
      },
      "put": {
        "description": "Updates a database user.",
        "operationId": "updateUser",
        "parameters": [
          {
            "description": "User identifier.",
            "in": "path",
            "name": "user_id",
            "required": true,
            "type": "string"
          },
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UserPUT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The update of database user has been started.",
            "schema": {
              "$ref": "#/definitions/userWrapper"
            }
          },
          "400": {
            "description": "Bad request. Fix the request and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_400"
                }
              }
            }
          },
          "401": {
            "description": "Bad or expired token. You can reissue the token and try again.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_401"
                }
              }
            }
          },
          "403": {
            "description": "Access is forbidden. Make sure you have the required rights.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_403"
                }
              }
            }
          },
          "404": {
            "description": "Database user has not been found.",
            "schema": {
              "properties": {
                "error": {
                  "$ref": "#/definitions/ErrorResponse_404"
                }
              }
            }
          }
        },
        "summary": "Update database user",
        "tags": [
          "Users"
        ]
      }
    }
  },
  "produces": [
    "application/json"
  ],
  "responses": {
    "APIException": {
      "description": "API exceptions"
    },
    "MaskError": {
      "description": "When any error occurs on mask"
    },
    "ParseError": {
      "description": "When a mask can't be parsed"
    }
  },
  "security": [
    {
      "iam_token_project_scoped": []
    }
  ],
  "securityDefinitions": {
    "iam_token_project_scoped": {
      "description": "IAM token for project",
      "in": "header",
      "name": "X-Auth-Token",
      "type": "apiKey"
    }
  },
  "swagger": "2.0",
  "tags": [
    {
      "description": "Access control lists (ACLs) in a Kafka cluster define actions on topics, consumer groups, and the cluster that users can perform. Use these endpoints to grant or restrict permissions by pattern and scope.",
      "name": "Access Control Lists"
    },
    {
      "description": "Information on actions performed in a cluster, used to track status, timing, and context of changes.",
      "name": "Actions"
    },
    {
      "description": "Available extensions that can be used to extend the functionality of a database within a cluster.",
      "name": "Available extensions"
    },
    {
      "description": "The set of capabilities available in the region, grouped by feature type. Each capability indicates whether a feature is supported.",
      "name": "Capabilities"
    },
    {
      "description": "Configuration parameters are tunable settings of a cluster that can be changed to adjust its behavior, performance, and security.",
      "name": "Configuration parameters"
    },
    {
      "description": "Managing databases within a cluster. Use these endpoints for CRUD operations and to inspect their metadata and status.",
      "name": "Databases"
    },
    {
      "description": "Managing clusters. Provides endpoints for CRUD operations and for performing operational actions such as rotating passwords, fetching logs/metrics, adjusting configuration, scaling, and toggling protection mode.",
      "name": "Clusters"
    },
    {
      "description": "Available database engines that can be used to create a cluster (e.g., PostgreSQL, MySQL, etc.).",
      "name": "Cluster types"
    },
    {
      "description": "Managing database extensions — optional features/plugins enabled per database. Provides endpoints to list used extensions, enable or disable them for a database, and inspect their version and status.",
      "name": "Extensions"
    },
    {
      "description": "Predefined compute configurations (vCPU, RAM, disk) used for cluster nodes. Provides endpoints to list available flavors, view details for specific flavor.",
      "name": "Flavors"
    },
    {
      "description": "Managing Floating IPs — externally routable addresses assignable to a node port for public access. Provides endpoints to associate or dissociate them with clusters.",
      "name": "Floating ips"
    },
    {
      "description": "Managing privileges assigned to users/roles on a database. Provides endpoints to grant or revoke permissions and to inspect current user access.",
      "name": "Grants"
    },
    {
      "description": "Platform limits for cluster configuration, including per-cluster-type min/max bounds (vCPU, RAM, local disk) and multiplier rules.",
      "name": "Limits"
    },
    {
      "description": "Managing logical replication slots for PostgreSQL clusters. Provides endpoints to create, list, and drop slots, and to inspect status/current activity. \n\nSlots retain WAL until consumed — use with care to avoid disk growth.",
      "name": "Logical replication slots"
    },
    {
      "description": "Managing Prometheus metrics access tokens for customer managed monitoring. Provides endpoints to issue and revoke tokens, and to view list or specific token.",
      "name": "Prometheus metrics tokens"
    },
    {
      "description": "Quotas are per-project resource limits used to control consumption and limit costs (e.g., clusters, vCPU, RAM, storage, etc.).",
      "name": "Quotas"
    },
    {
      "description": "Managing database users within a cluster. Provides endpoints to create, retrieve, update, and delete users, rotate passwords.",
      "name": "Users"
    },
    {
      "description": "Managing Kafka topics — the logical streams of records. Provides endpoints to create, list, update, and delete topics.",
      "name": "Topics"
    }
  ]
}
