{
  "swagger": "2.0",
  "info": {
    "title": "global/nextgen/v1/cluster.proto",
    "version": "version not set"
  },
  "tags": [
    {
      "name": "ClusterService"
    }
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {},
  "definitions": {
    "ReservedCapacityTemplateWorkload": {
      "type": "object",
      "properties": {
        "workloadType": {
          "$ref": "#/definitions/ReservedCapacityTemplateWorkloadType"
        },
        "qpsMin": {
          "type": "string",
          "format": "int64"
        },
        "qpsMax": {
          "type": "string",
          "format": "int64"
        },
        "dataSizeGibMin": {
          "type": "string",
          "format": "int64"
        },
        "dataSizeGibMax": {
          "type": "string",
          "format": "int64"
        },
        "p99ResponseLatencyMin": {
          "type": "string",
          "format": "int64"
        },
        "p99ResponseLatencyMax": {
          "type": "string",
          "format": "int64"
        }
      },
      "required": [
        "workloadType"
      ]
    },
    "ReservedCapacityTemplateWorkloadType": {
      "type": "string",
      "enum": [
        "READ",
        "WRITE",
        "MIXED"
      ]
    },
    "StorageSpecStorageName": {
      "type": "string",
      "enum": [
        "DATA",
        "RAFTLOG",
        "SLOWLOG"
      ]
    },
    "commonv1ServicePlan": {
      "type": "string",
      "enum": [
        "Starter",
        "Essential",
        "Premium",
        "BYOC",
        "Premium_Reserved",
        "Essential_V2"
      ]
    },
    "globalnextgenv1ChangeClusterPasswdResponse": {
      "type": "object",
      "properties": {
        "synced": {
          "type": "boolean",
          "title": "whether the passwd is synced to cluster or only saved into metadb"
        }
      }
    },
    "globalnextgenv1Cluster": {
      "type": "object",
      "properties": {
        "clusterId": {
          "type": "string",
          "format": "uint64",
          "description": "Metadata."
        },
        "organizationId": {
          "type": "string",
          "format": "uint64"
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "createFinishedTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "updateTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "deleteTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "cloudProviderId": {
          "description": "Specs.",
          "allOf": [
            {
              "$ref": "#/definitions/v1CloudProviderName"
            }
          ]
        },
        "regionId": {
          "$ref": "#/definitions/v1RegionName"
        },
        "rootPassword": {
          "type": "string"
        },
        "version": {
          "type": "string",
          "description": "Version of TiDB kernel."
        },
        "hasRootPassword": {
          "type": "boolean",
          "readOnly": true
        },
        "state": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/globalnextgenv1ClusterState"
            }
          ]
        },
        "healthState": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/globalnextgenv1ClusterHealthState"
            }
          ]
        },
        "tokenBasedAuthEnabled": {
          "type": "boolean",
          "readOnly": true
        },
        "regionDisplayName": {
          "type": "string",
          "readOnly": true
        },
        "minRcu": {
          "type": "string",
          "format": "int64"
        },
        "maxRcu": {
          "type": "string",
          "format": "int64"
        },
        "servicePlan": {
          "$ref": "#/definitions/commonv1ServicePlan"
        },
        "highAvailabilityType": {
          "$ref": "#/definitions/nextgenv1ClusterHighAvailabilityType"
        },
        "regionLogicalName": {
          "type": "string",
          "readOnly": true
        },
        "endpoints": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/nextgenv1Endpoint"
          },
          "readOnly": true
        },
        "sharedPoolId": {
          "type": "string",
          "readOnly": true
        },
        "dataplaneId": {
          "type": "string",
          "readOnly": true
        },
        "sourceClusterId": {
          "type": "string",
          "format": "uint64",
          "title": "only used in restore to set cloud admin passwd"
        },
        "encryptedPlatformAdminPassword": {
          "type": "string"
        },
        "encryptedMaintenanceAdminPassword": {
          "type": "string"
        },
        "dualLayerDataEncryption": {
          "$ref": "#/definitions/v1ClusterDualLayerDataEncryption"
        },
        "displayName": {
          "type": "string"
        },
        "projectId": {
          "type": "string",
          "format": "int64"
        },
        "ruVersion": {
          "type": "integer",
          "format": "int32"
        },
        "capacityUpdatedAt": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "reservedCapacityTemplateId": {
          "type": "string",
          "format": "uint64"
        },
        "reservedCapacityTemplate": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1ReservedCapacityTemplate"
            }
          ]
        },
        "resourcePoolDisplayName": {
          "type": "string",
          "readOnly": true
        },
        "planReplayerStatus": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/globalnextgenv1PlanReplayerStatus"
            }
          ]
        },
        "automaticResumeAt": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        }
      },
      "required": [
        "clusterId",
        "organizationId",
        "cloudProviderId",
        "regionId",
        "maxRcu",
        "servicePlan",
        "projectId"
      ]
    },
    "globalnextgenv1ClusterHealthState": {
      "type": "string",
      "enum": [
        "HEALTHY",
        "UNHEALTHY"
      ]
    },
    "globalnextgenv1ClusterState": {
      "type": "string",
      "enum": [
        "CREATING",
        "AVAILABLE",
        "MODIFYING",
        "UNAVAILABLE",
        "DELETED",
        "PAUSING",
        "PAUSED",
        "RESUMING"
      ]
    },
    "globalnextgenv1ComponentType": {
      "type": "string",
      "enum": [
        "TIDB",
        "TIKV",
        "PD",
        "TIPROXY",
        "TIDB_WORKER",
        "TIKV_WORKER",
        "COPROCESSOR_WORKER",
        "TIFLASH_WRITE",
        "TIFLASH_COMPUTE",
        "PD_TSO",
        "PD_SCHEDULING",
        "SCHEMA_MANAGER"
      ]
    },
    "globalnextgenv1CustomerManagedEncryptionKey": {
      "type": "object",
      "properties": {
        "customerManagedEncryptionKeyId": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "organizationId": {
          "type": "string",
          "format": "uint64"
        },
        "cloudProviderId": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "regionId": {
          "$ref": "#/definitions/v1RegionName"
        },
        "servicePlan": {
          "$ref": "#/definitions/commonv1ServicePlan"
        },
        "awsKms": {
          "$ref": "#/definitions/nextgenv1CustomerManagedEncryptionKeyAwsKms"
        },
        "aliyunKms": {
          "$ref": "#/definitions/nextgenv1CustomerManagedEncryptionKeyAliyunKms"
        },
        "awsPrincipal": {
          "$ref": "#/definitions/nextgenv1CmekAccessIamPrincipalAwsCmekPrincipal"
        },
        "aliyunPrincipal": {
          "$ref": "#/definitions/nextgenv1CmekAccessIamPrincipalAliyunCmekPrincipal"
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "updateTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "deleteTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        }
      },
      "required": [
        "organizationId",
        "cloudProviderId",
        "regionId",
        "servicePlan"
      ]
    },
    "globalnextgenv1ListClustersResponse": {
      "type": "object",
      "properties": {
        "clusters": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/globalnextgenv1Cluster"
          }
        },
        "total": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "globalnextgenv1PlanReplayerStatus": {
      "type": "object",
      "properties": {
        "clusterId": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "enabled": {
          "type": "boolean",
          "readOnly": true
        },
        "expireTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        }
      }
    },
    "googlerpcStatus": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "description": "The status code, which should be an enum value of\n[google.rpc.Code][google.rpc.Code]."
        },
        "message": {
          "type": "string",
          "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\n[google.rpc.Status.details][google.rpc.Status.details] field, or localized\nby the client."
        },
        "details": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/protobufAny"
          },
          "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use."
        }
      },
      "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors)."
    },
    "nextgenv1Backup": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "title": "The unique identifier of the backup",
          "readOnly": true
        },
        "clusterId": {
          "type": "string",
          "title": "The ID of the TiDB cluster this backup belongs to",
          "readOnly": true
        },
        "organizationId": {
          "type": "string",
          "title": "The ID of the Tenant this backup belongs to",
          "readOnly": true
        },
        "servicePlan": {
          "title": "The service plan of the backup",
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/commonv1ServicePlan"
            }
          ]
        },
        "displayName": {
          "type": "string",
          "title": "The name of the backup",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "title": "Description of the backup"
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "title": "Timestamp when the backup was created",
          "readOnly": true
        },
        "size": {
          "type": "string",
          "format": "int64",
          "title": "The size of the backup in bytes",
          "readOnly": true
        },
        "state": {
          "title": "The state of the backup",
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/nextgenv1BackupState"
            }
          ]
        },
        "type": {
          "title": "The type of backup (snapshot / copied backup)",
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/nextgenv1BackupType"
            }
          ]
        },
        "triggerType": {
          "title": "The trigger type of the backup",
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/nextgenv1BackupTriggerType"
            }
          ]
        },
        "expirationTime": {
          "type": "string",
          "format": "date-time",
          "title": "Timestamp when the backup expires",
          "readOnly": true
        },
        "backupTs": {
          "type": "string",
          "title": "The backup tso",
          "readOnly": true
        },
        "regionId": {
          "type": "string",
          "title": "The region ID where the backup is stored",
          "readOnly": true
        },
        "customerManaged": {
          "type": "boolean",
          "title": "Whether the source cluster used a customer-managed key at backup time.\nCombine with `encryption_key_id`:\n- `encryption_key_id == 0`: backup was not encrypted\n- `encryption_key_id != 0 \u0026\u0026 customer_managed == false`: backup used SMEK\n- `encryption_key_id != 0 \u0026\u0026 customer_managed == true`: backup used CMEK",
          "readOnly": true
        },
        "encryptionKeyId": {
          "type": "string",
          "format": "uint64",
          "description": "Source cluster encryption key ID at backup time. `0` means no encryption key was used.",
          "readOnly": true
        }
      }
    },
    "nextgenv1BackupSetting": {
      "type": "object",
      "properties": {
        "clusterId": {
          "type": "string"
        },
        "backupPolicy": {
          "$ref": "#/definitions/nextgenv1BackupSettingBackupPolicyTier"
        },
        "pitrStartTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "pitrEndTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "deleteTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "lastModifyTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "mode": {
          "$ref": "#/definitions/nextgenv1BackupSettingBackupMode"
        },
        "retentionDays": {
          "type": "integer",
          "format": "int32",
          "x-nullable": true
        },
        "dailyBackupTimeUtc": {
          "type": "string",
          "x-nullable": true
        }
      },
      "required": [
        "clusterId"
      ]
    },
    "nextgenv1BackupSettingBackupMode": {
      "type": "string",
      "enum": [
        "STANDARD_BUNDLE",
        "FLEXIBLE_RETENTION"
      ]
    },
    "nextgenv1BackupSettingBackupPolicyTier": {
      "type": "string",
      "enum": [
        "TIER1",
        "TIER2",
        "TIER3"
      ]
    },
    "nextgenv1BackupState": {
      "type": "string",
      "enum": [
        "STATE_UNKNOWN",
        "STATE_PENDING",
        "STATE_RUNNING",
        "STATE_SUCCESS",
        "STATE_FAILED",
        "STATE_CANCELLED"
      ],
      "title": "State enum for backup operations"
    },
    "nextgenv1BackupStorageAuth": {
      "type": "object",
      "properties": {
        "accessKeyId": {
          "type": "string"
        },
        "accessKeySecret": {
          "type": "string"
        }
      },
      "required": [
        "accessKeyId",
        "accessKeySecret"
      ]
    },
    "nextgenv1BackupTriggerType": {
      "type": "string",
      "enum": [
        "TRIGGER_TYPE_AUTO",
        "TRIGGER_TYPE_MANUAL"
      ],
      "title": "TriggerType enum for backup operations"
    },
    "nextgenv1BackupType": {
      "type": "string",
      "enum": [
        "TYPE_SNAPSHOT",
        "TYPE_COPIED"
      ],
      "title": "Type enum for backup operations"
    },
    "nextgenv1CaCertificateDownloadUrl": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "nextgenv1ClassicBackupStorage": {
      "type": "object",
      "properties": {
        "cloudProvider": {
          "$ref": "#/definitions/v1CloudProviderName"
        },
        "region": {
          "type": "string",
          "title": "only required when cloud_provider=alicloud"
        },
        "bucketUri": {
          "type": "string"
        },
        "auth": {
          "$ref": "#/definitions/nextgenv1BackupStorageAuth"
        }
      },
      "required": [
        "cloudProvider",
        "bucketUri",
        "auth"
      ]
    },
    "nextgenv1ClusterHighAvailabilityType": {
      "type": "string",
      "enum": [
        "REGIONAL",
        "ZONAL"
      ]
    },
    "nextgenv1CmekAccessIamPrincipalAliyunCmekPrincipal": {
      "type": "object",
      "properties": {
        "accountId": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "nextgenv1CmekAccessIamPrincipalAwsCmekPrincipal": {
      "type": "object",
      "properties": {
        "accountId": {
          "type": "string",
          "readOnly": true
        },
        "externalId": {
          "type": "string",
          "description": "AWS STS AssumeRole ExternalId to be pinned in the customer's KMS key\npolicy Condition block.",
          "readOnly": true
        }
      }
    },
    "nextgenv1ConnectionReachability": {
      "type": "object",
      "properties": {
        "reachable": {
          "type": "boolean",
          "readOnly": true
        },
        "detail": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/nextgenv1ConnectionReachabilityDetail"
            }
          ]
        }
      }
    },
    "nextgenv1ConnectionReachabilityDetail": {
      "type": "object",
      "properties": {
        "serviceActive": {
          "type": "boolean",
          "readOnly": true
        },
        "endpointActive": {
          "type": "boolean",
          "readOnly": true
        },
        "dnsReachable": {
          "type": "boolean",
          "readOnly": true
        },
        "message": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "nextgenv1CustomerManagedEncryptionKeyAliyunKms": {
      "type": "object",
      "properties": {
        "kmsKeyArn": {
          "type": "string"
        }
      },
      "required": [
        "kmsKeyArn"
      ]
    },
    "nextgenv1CustomerManagedEncryptionKeyAwsKms": {
      "type": "object",
      "properties": {
        "kmsKeyArn": {
          "type": "string"
        }
      },
      "required": [
        "kmsKeyArn"
      ]
    },
    "nextgenv1Endpoint": {
      "type": "object",
      "properties": {
        "tidbGroupId": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "publicEndpoint": {
          "$ref": "#/definitions/nextgenv1EndpointPublicEndpoint"
        },
        "vpcPeeringEndpoint": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/nextgenv1EndpointVpcPeeringEndpoint"
            }
          ]
        },
        "privateLinkEndpoints": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/nextgenv1EndpointPrivateLinkEndpoint"
          },
          "description": "On GCP and Azure, different endpoints of a private link service have different hostnames.",
          "readOnly": true
        }
      }
    },
    "nextgenv1EndpointIpAddress": {
      "type": "object",
      "properties": {
        "cidrBlock": {
          "type": "string"
        },
        "description": {
          "type": "string"
        }
      },
      "required": [
        "cidrBlock"
      ]
    },
    "nextgenv1EndpointPrivateLinkEndpoint": {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "readOnly": true
        },
        "port": {
          "type": "integer",
          "format": "int64",
          "readOnly": true
        },
        "reachability": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/nextgenv1ConnectionReachability"
            }
          ]
        }
      }
    },
    "nextgenv1EndpointPublicEndpoint": {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "readOnly": true
        },
        "port": {
          "type": "integer",
          "format": "int64",
          "readOnly": true
        },
        "ipAllowList": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/nextgenv1EndpointIpAddress"
          }
        },
        "enablePublicLb": {
          "type": "boolean",
          "x-nullable": true
        },
        "reachability": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/nextgenv1ConnectionReachability"
            }
          ]
        },
        "egressIps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "readOnly": true
        }
      }
    },
    "nextgenv1EndpointVpcPeeringEndpoint": {
      "type": "object",
      "properties": {
        "host": {
          "type": "string",
          "readOnly": true
        },
        "port": {
          "type": "integer",
          "format": "int64",
          "readOnly": true
        },
        "reachability": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/nextgenv1ConnectionReachability"
            }
          ]
        }
      }
    },
    "nextgenv1EstimatePriceResponse": {
      "type": "object",
      "properties": {
        "cloudProvider": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "rcu": {
          "type": "string",
          "format": "int64"
        },
        "rcuCostHourly": {
          "type": "string"
        },
        "rcuCostMonthly": {
          "type": "string"
        }
      }
    },
    "nextgenv1NodeSpec": {
      "type": "object",
      "properties": {
        "cpu": {
          "type": "integer",
          "format": "int64"
        },
        "memoryGi": {
          "type": "integer",
          "format": "int64"
        }
      },
      "required": [
        "cpu",
        "memoryGi"
      ]
    },
    "nextgenv1RestoreMode": {
      "type": "string",
      "enum": [
        "RESTORE_MODE_SNAPSHOT",
        "RESTORE_MODE_PITR",
        "RESTORE_MODE_DEDICATED_SNAPSHOT",
        "RESTORE_MODE_CLASSIC_SNAPSHOT"
      ],
      "title": "RestoreMode enum for restore operations"
    },
    "nextgenv1RestoreState": {
      "type": "string",
      "enum": [
        "RESTORE_STATE_UNKNOWN",
        "RESTORE_STATE_PENDING",
        "RESTORE_STATE_RUNNING",
        "RESTORE_STATE_SUCCESS",
        "RESTORE_STATE_FAILED",
        "RESTORE_STATE_CANCELLED"
      ],
      "title": "RestoreState enum for restore operations"
    },
    "nextgenv1RestoreStatusResponse": {
      "type": "object",
      "properties": {
        "state": {
          "title": "The status of the restore operation",
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/nextgenv1RestoreState"
            }
          ]
        },
        "message": {
          "type": "string",
          "title": "Error message provided if the restore failed",
          "readOnly": true
        },
        "progress": {
          "type": "integer",
          "format": "int32",
          "title": "Progress percentage (0-100)",
          "readOnly": true
        },
        "details": {
          "description": "Durable metadata for the restore operation.",
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1RestoreDetails"
            }
          ]
        }
      }
    },
    "protobufAny": {
      "type": "object",
      "properties": {
        "@type": {
          "type": "string",
          "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."
        }
      },
      "additionalProperties": {},
      "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(\u0026foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := \u0026pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := \u0026pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": \u003cstring\u003e,\n      \"lastName\": \u003cstring\u003e\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"
    },
    "v1CloudProviderName": {
      "type": "string",
      "enum": [
        "AWS",
        "GCP",
        "AZURE",
        "ALICLOUD"
      ],
      "description": "Refer to terraform provider name: https://registry.terraform.io/browse/providers."
    },
    "v1ClusterDualLayerDataEncryption": {
      "type": "object",
      "properties": {
        "noEncryption": {
          "type": "object",
          "properties": {}
        },
        "defaultKey": {
          "type": "object",
          "properties": {}
        },
        "cmek": {
          "$ref": "#/definitions/globalnextgenv1CustomerManagedEncryptionKey"
        }
      }
    },
    "v1ClusterEncryptionStatus": {
      "type": "object",
      "properties": {
        "clusterId": {
          "type": "string",
          "format": "uint64"
        },
        "state": {
          "$ref": "#/definitions/v1ClusterEncryptionStatusState"
        },
        "message": {
          "type": "string"
        },
        "currentEncryption": {
          "$ref": "#/definitions/v1ClusterDualLayerDataEncryption"
        }
      }
    },
    "v1ClusterEncryptionStatusState": {
      "type": "string",
      "enum": [
        "MODIFYING",
        "ENABLED"
      ]
    },
    "v1ComponentTopology": {
      "type": "object",
      "properties": {
        "componentType": {
          "$ref": "#/definitions/globalnextgenv1ComponentType"
        },
        "nodeQuota": {
          "$ref": "#/definitions/v1NodeQuota"
        },
        "storages": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1StorageSpec"
          }
        }
      },
      "required": [
        "componentType",
        "nodeQuota"
      ]
    },
    "v1FixedTopology": {
      "type": "object",
      "properties": {
        "components": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ComponentTopology"
          }
        }
      },
      "required": [
        "components"
      ]
    },
    "v1ListClusterBackupsResponse": {
      "type": "object",
      "properties": {
        "backups": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/nextgenv1Backup"
          }
        },
        "totalSize": {
          "type": "integer",
          "format": "int32",
          "title": "page fileds"
        },
        "nextPageToken": {
          "type": "string"
        }
      }
    },
    "v1NodeQuota": {
      "type": "object",
      "properties": {
        "nodeSpec": {
          "$ref": "#/definitions/nextgenv1NodeSpec"
        },
        "nodeCount": {
          "type": "integer",
          "format": "int64"
        }
      },
      "required": [
        "nodeSpec",
        "nodeCount"
      ]
    },
    "v1ProviderRole": {
      "type": "object",
      "properties": {
        "cloudIamIdentity": {
          "type": "string",
          "title": "aws role or gcp serviceaccount",
          "readOnly": true
        },
        "nodeRole": {
          "type": "string",
          "title": "e.g. eks-nodegroup-role",
          "readOnly": true
        },
        "externalId": {
          "type": "string",
          "readOnly": true
        }
      }
    },
    "v1RegionName": {
      "type": "string",
      "enum": [
        "AWS_US_EAST_2",
        "AWS_US_EAST_1",
        "AWS_US_WEST_1",
        "AWS_US_WEST_2",
        "AWS_AF_SOUTH_1",
        "AWS_AP_EAST_1",
        "AWS_AP_SOUTH_2",
        "AWS_AP_SOUTHEAST_3",
        "AWS_AP_SOUTHEAST_4",
        "AWS_AP_SOUTH_1",
        "AWS_AP_NORTHEAST_3",
        "AWS_AP_NORTHEAST_2",
        "AWS_AP_SOUTHEAST_1",
        "AWS_AP_SOUTHEAST_2",
        "AWS_AP_NORTHEAST_1",
        "AWS_CA_CENTRAL_1",
        "AWS_CA_WEST_1",
        "AWS_EU_CENTRAL_1",
        "AWS_EU_WEST_1",
        "AWS_EU_WEST_2",
        "AWS_EU_SOUTH_1",
        "AWS_EU_WEST_3",
        "AWS_EU_SOUTH_2",
        "AWS_EU_NORTH_1",
        "AWS_EU_CENTRAL_2",
        "AWS_IL_CENTRAL_1",
        "AWS_ME_SOUTH_1",
        "AWS_ME_CENTRAL_1",
        "AWS_SA_EAST_1",
        "AWS_AP_SOUTHEAST_5",
        "AWS_AP_SOUTHEAST_6",
        "AWS_AP_SOUTHEAST_7",
        "AWS_MX_CENTRAL_1",
        "GCP_ASIA_EAST1",
        "GCP_ASIA_EAST2",
        "GCP_ASIA_NORTHEAST1",
        "GCP_ASIA_NORTHEAST2",
        "GCP_ASIA_NORTHEAST3",
        "GCP_ASIA_SOUTH1",
        "GCP_ASIA_SOUTH2",
        "GCP_ASIA_SOUTHEAST1",
        "GCP_ASIA_SOUTHEAST2",
        "GCP_AUSTRALIA_SOUTHEAST1",
        "GCP_AUSTRALIA_SOUTHEAST2",
        "GCP_EUROPE_CENTRAL2",
        "GCP_EUROPE_NORTH1",
        "GCP_EUROPE_SOUTHWEST1",
        "GCP_EUROPE_WEST1",
        "GCP_EUROPE_WEST10",
        "GCP_EUROPE_WEST12",
        "GCP_EUROPE_WEST2",
        "GCP_EUROPE_WEST3",
        "GCP_EUROPE_WEST4",
        "GCP_EUROPE_WEST6",
        "GCP_EUROPE_WEST8",
        "GCP_EUROPE_WEST9",
        "GCP_ME_CENTRAL1",
        "GCP_ME_CENTRAL2",
        "GCP_ME_WEST1",
        "GCP_NORTHAMERICA_NORTHEAST1",
        "GCP_NORTHAMERICA_NORTHEAST2",
        "GCP_SOUTHAMERICA_EAST1",
        "GCP_SOUTHAMERICA_WEST1",
        "GCP_US_CENTRAL1",
        "GCP_US_EAST1",
        "GCP_US_EAST4",
        "GCP_US_EAST5",
        "GCP_US_SOUTH1",
        "GCP_US_WEST1",
        "GCP_US_WEST2",
        "GCP_US_WEST3",
        "GCP_US_WEST4",
        "AZURE_EASTUS",
        "AZURE_SOUTHCENTRALUS",
        "AZURE_WESTUS2",
        "AZURE_WESTUS3",
        "AZURE_AUSTRALIAEAST",
        "AZURE_SOUTHEASTASIA",
        "AZURE_NORTHEUROPE",
        "AZURE_SWEDENCENTRAL",
        "AZURE_UKSOUTH",
        "AZURE_WESTEUROPE",
        "AZURE_CENTRALUS",
        "AZURE_SOUTHAFRICANORTH",
        "AZURE_CENTRALINDIA",
        "AZURE_EASTASIA",
        "AZURE_JAPANEAST",
        "AZURE_KOREACENTRAL",
        "AZURE_CANADACENTRAL",
        "AZURE_FRANCECENTRAL",
        "AZURE_GERMANYWESTCENTRAL",
        "AZURE_ITALYNORTH",
        "AZURE_NORWAYEAST",
        "AZURE_POLANDCENTRAL",
        "AZURE_SPAINCENTRAL",
        "AZURE_SWITZERLANDNORTH",
        "AZURE_MEXICOCENTRAL",
        "AZURE_UAENORTH",
        "AZURE_BRAZILSOUTH",
        "AZURE_ISRAELCENTRAL",
        "AZURE_QATARCENTRAL",
        "AZURE_CENTRALUSSTAGE",
        "AZURE_EASTUSSTAGE",
        "AZURE_EASTUS2STAGE",
        "AZURE_NORTHCENTRALUSSTAGE",
        "AZURE_SOUTHCENTRALUSSTAGE",
        "AZURE_WESTUSSTAGE",
        "AZURE_WESTUS2STAGE",
        "AZURE_ASIA",
        "AZURE_ASIAPACIFIC",
        "AZURE_AUSTRALIA",
        "AZURE_BRAZIL",
        "AZURE_CANADA",
        "AZURE_EUROPE",
        "AZURE_FRANCE",
        "AZURE_GERMANY",
        "AZURE_GLOBAL",
        "AZURE_INDIA",
        "AZURE_ISRAEL",
        "AZURE_ITALY",
        "AZURE_JAPAN",
        "AZURE_KOREA",
        "AZURE_NEWZEALAND",
        "AZURE_NORWAY",
        "AZURE_POLAND",
        "AZURE_QATAR",
        "AZURE_SINGAPORE",
        "AZURE_SOUTHAFRICA",
        "AZURE_SWEDEN",
        "AZURE_SWITZERLAND",
        "AZURE_UAE",
        "AZURE_UK",
        "AZURE_UNITEDSTATES",
        "AZURE_UNITEDSTATESEUAP",
        "AZURE_EASTASIASTAGE",
        "AZURE_SOUTHEASTASIASTAGE",
        "AZURE_BRAZILUS",
        "AZURE_EASTUS2",
        "AZURE_EASTUSSTG",
        "AZURE_NORTHCENTRALUS",
        "AZURE_WESTUS",
        "AZURE_JAPANWEST",
        "AZURE_JIOINDIAWEST",
        "AZURE_CENTRALUSEUAP",
        "AZURE_EASTUS2EUAP",
        "AZURE_WESTCENTRALUS",
        "AZURE_SOUTHAFRICAWEST",
        "AZURE_AUSTRALIACENTRAL",
        "AZURE_AUSTRALIACENTRAL2",
        "AZURE_AUSTRALIASOUTHEAST",
        "AZURE_JIOINDIACENTRAL",
        "AZURE_KOREASOUTH",
        "AZURE_SOUTHINDIA",
        "AZURE_WESTINDIA",
        "AZURE_CANADAEAST",
        "AZURE_FRANCESOUTH",
        "AZURE_GERMANYNORTH",
        "AZURE_NORWAYWEST",
        "AZURE_SWITZERLANDWEST",
        "AZURE_UKWEST",
        "AZURE_UAECENTRAL",
        "AZURE_BRAZILSOUTHEAST",
        "ALICLOUD_AP_SOUTHEAST_1",
        "ALICLOUD_AP_NORTHEAST_1",
        "ALICLOUD_AP_NORTHEAST_2",
        "ALICLOUD_AP_SOUTHEAST_3",
        "ALICLOUD_AP_SOUTHEAST_5",
        "ALICLOUD_AP_SOUTHEAST_6",
        "ALICLOUD_AP_SOUTHEAST_7",
        "ALICLOUD_NA_SOUTH_1",
        "ALICLOUD_US_WEST_1",
        "ALICLOUD_US_EAST_1",
        "ALICLOUD_EU_CENTRAL_1",
        "ALICLOUD_EU_WEST_1",
        "ALICLOUD_ME_EAST_1",
        "ALICLOUD_ME_CENTRAL_1",
        "ALICLOUD_CN_HONGKONG"
      ],
      "description": "- AWS_US_EAST_2: AWS.\n - GCP_ASIA_EAST1: GCP.\n - AZURE_EASTUS: Azure\n - ALICLOUD_AP_SOUTHEAST_1: AliCloud",
      "title": "Refer to:\n  - AWS: https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints.\n  - GCP: https://console.cloud.google.com/compute/zones\n  - Azure: https://gist.github.com/ausfestivus/04e55c7d80229069bf3bc75870630ec8"
    },
    "v1ReservedCapacityTemplate": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "templateCode": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "scope": {
          "$ref": "#/definitions/v1ReservedCapacityTemplateScope"
        },
        "organizationId": {
          "type": "string",
          "format": "uint64"
        },
        "status": {
          "$ref": "#/definitions/v1ReservedCapacityTemplateStatus"
        },
        "purchasedVcpu": {
          "type": "string",
          "format": "int64"
        },
        "workload": {
          "$ref": "#/definitions/ReservedCapacityTemplateWorkload"
        },
        "fixedTopology": {
          "$ref": "#/definitions/v1FixedTopology"
        },
        "topologySummary": {
          "type": "string"
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "updateTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "deleteTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        }
      },
      "required": [
        "scope",
        "status",
        "purchasedVcpu",
        "workload",
        "fixedTopology"
      ]
    },
    "v1ReservedCapacityTemplateScope": {
      "type": "string",
      "enum": [
        "DEFAULT",
        "ORG_PRIVATE"
      ]
    },
    "v1ReservedCapacityTemplateStatus": {
      "type": "string",
      "enum": [
        "ACTIVE",
        "DEPRECATED"
      ]
    },
    "v1RestoreDetails": {
      "type": "object",
      "properties": {
        "sourceClusterId": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "restoreMode": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/nextgenv1RestoreMode"
            }
          ]
        },
        "backupId": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "pointInTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "restoreRequestedTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "restoreUpdatedTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "expectedRestoreDataSizeBytes": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        },
        "sourceRegionId": {
          "type": "string",
          "readOnly": true
        },
        "sourceCloudProvider": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1CloudProviderName"
            }
          ]
        },
        "sourceServicePlan": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/commonv1ServicePlan"
            }
          ]
        }
      }
    },
    "v1StorageSpec": {
      "type": "object",
      "properties": {
        "name": {
          "$ref": "#/definitions/StorageSpecStorageName"
        },
        "type": {
          "type": "string"
        },
        "sizeGi": {
          "type": "integer",
          "format": "int64"
        },
        "iops": {
          "type": "integer",
          "format": "int64"
        },
        "throughputMbs": {
          "type": "integer",
          "format": "int64"
        }
      },
      "required": [
        "name",
        "sizeGi"
      ]
    },
    "v1TestClassicBackupAccessResponse": {
      "type": "object",
      "properties": {
        "status": {
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1TestClassicBackupAccessResponseStatus"
            }
          ]
        },
        "message": {
          "type": "string",
          "readOnly": true
        },
        "cloudProvider": {
          "title": "following fields only return when status is success",
          "readOnly": true,
          "allOf": [
            {
              "$ref": "#/definitions/v1CloudProviderName"
            }
          ]
        },
        "region": {
          "type": "string",
          "readOnly": true
        },
        "version": {
          "type": "string",
          "readOnly": true
        },
        "backupTime": {
          "type": "string",
          "format": "date-time",
          "readOnly": true
        },
        "dataSizeBytes": {
          "type": "string",
          "format": "uint64",
          "readOnly": true
        }
      }
    },
    "v1TestClassicBackupAccessResponseStatus": {
      "type": "string",
      "enum": [
        "SUCCESS",
        "NO_SUCH_BUCKET",
        "ILLEGAL_BACKUP",
        "ACCESS_DENIED",
        "INVALID_PARAMS"
      ]
    },
    "v1UpdateClusterDualLayerEncryptionResponse": {
      "type": "object",
      "properties": {
        "clusterId": {
          "type": "string",
          "format": "uint64"
        }
      }
    },
    "v1UpdateClusterProjectResponse": {
      "type": "object",
      "description": "UpdateClusterProjectResponse is the response for updating a cluster's project_id."
    }
  }
}
