openapi: 3.2.0
info:
title: Yugabytedb Region management API
version: v1
contact:
name: https://docs.yugabyte.com
license:
name: Polyform Free Trial License 1.0.0
url: https://github.com/yugabyte/yugabyte-db/blob/master/licenses/POLYFORM-FREE-TRIAL-LICENSE-1.0.0.txt
termsOfService: TODO(chirag)
description: 'Operations tagged Region management across 2 of this provider''s published API definitions: openapi_2.yaml, platform.swagger.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /
tags:
- name: Region management
paths:
/api/v1/customers/{cUUID}/providers/{pUUID}/provider_regions:
servers:
- url: /
post:
description: 'WARNING: This is a preview API that could change.'
operationId: createProviderRegion
parameters:
- in: path
name: cUUID
required: true
schema:
format: uuid
type: string
- in: path
name: pUUID
required: true
schema:
format: uuid
type: string
- in: query
name: request
schema: {}
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Region'
description: Specification of Region to be created
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Region'
description: successful operation
security:
- apiKeyAuth: []
summary: Create a new region
tags:
- Region management
x-codegen-request-body-name: region
/api/v1/customers/{cUUID}/providers/{pUUID}/provider_regions/{rUUID}:
servers:
- url: /
put:
description: 'WARNING: This is a preview API that could change.'
operationId: editProviderRegion
parameters:
- in: path
name: cUUID
required: true
schema:
format: uuid
type: string
- in: path
name: pUUID
required: true
schema:
format: uuid
type: string
- in: path
name: rUUID
required: true
schema:
format: uuid
type: string
- in: query
name: request
schema: {}
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Region'
description: Specification of Region to be edited
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Region'
description: successful operation
security:
- apiKeyAuth: []
summary: Modify a region
tags:
- Region management
x-codegen-request-body-name: region
/api/v1/customers/{cUUID}/providers/{pUUID}/regions:
servers:
- url: /
get:
operationId: getRegion
parameters:
- in: path
name: cUUID
required: true
schema:
format: uuid
type: string
- in: path
name: pUUID
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Region'
type: array
description: successful operation
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/YBPError'
description: If there was a server or database issue when listing the regions
security:
- apiKeyAuth: []
summary: List a provider's regions
tags:
- Region management
post:
deprecated: true
description: 'Deprecated since YBA version 2.18.2.0.
Use /api/v1/customers/{cUUID}/provider/{pUUID}/provider_regions instead'
operationId: createRegion
parameters:
- in: path
name: cUUID
required: true
schema:
format: uuid
type: string
- in: path
name: pUUID
required: true
schema:
format: uuid
type: string
- in: query
name: request
schema: {}
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RegionFormData'
description: region form data for new region to be created
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Region'
description: successful operation
security:
- apiKeyAuth: []
summary: Create Region - deprecated
tags:
- Region management
x-codegen-request-body-name: region
/api/v1/customers/{cUUID}/providers/{pUUID}/regions/{rUUID}:
servers:
- url: /
delete:
operationId: deleteRegion
parameters:
- in: path
name: cUUID
required: true
schema:
format: uuid
type: string
- in: path
name: pUUID
required: true
schema:
format: uuid
type: string
- in: path
name: rUUID
required: true
schema:
format: uuid
type: string
- in: query
name: request
schema: {}
responses:
'200':
content:
application/json:
schema:
type: object
description: successful operation
security:
- apiKeyAuth: []
summary: Delete a region
tags:
- Region management
put:
deprecated: true
description: 'Deprecated since YBA version 2.18.2.0.
Use /api/v1/customers/{cUUID}/provider/{pUUID}/provider_regions instead'
operationId: editRegion
parameters:
- in: path
name: cUUID
required: true
schema:
format: uuid
type: string
- in: path
name: pUUID
required: true
schema:
format: uuid
type: string
- in: path
name: rUUID
required: true
schema:
format: uuid
type: string
- in: query
name: request
schema: {}
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RegionFormData'
description: region edit form data
required: true
responses:
'200':
content:
application/json:
schema:
type: object
description: successful operation
security:
- apiKeyAuth: []
summary: Edit regions - deprecated
tags:
- Region management
x-codegen-request-body-name: region
/api/v1/customers/{cUUID}/regions:
servers:
- url: /
get:
operationId: listAllRegions
parameters:
- in: path
name: cUUID
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Region'
type: array
description: successful operation
security:
- apiKeyAuth: []
summary: List regions for all providers
tags:
- Region management
components:
schemas:
RegionFormData:
example:
securityGroupId: securityGroupId
hostVpcId: hostVpcId
code: code
destVpcId: destVpcId
ybImage: ybImage
latitude: 0.8008281904610115
name: name
vnetName: vnetName
hostVpcRegion: hostVpcRegion
longitude: 6.027456183070403
properties:
code:
type: string
destVpcId:
type: string
hostVpcId:
type: string
hostVpcRegion:
type: string
latitude:
format: double
type: number
longitude:
format: double
type: number
name:
type: string
securityGroupId:
type: string
vnetName:
type: string
ybImage:
type: string
required:
- code
- destVpcId
- hostVpcId
- hostVpcRegion
- latitude
- longitude
- name
- securityGroupId
- vnetName
- ybImage
type: object
YBPError:
description: Generic error response from the YugabyteDB Anywhere API
example:
success: false
requestUri: /customers/8918921-af3782-633de/universe/8173ab-fd2453/create
error: There was a problem creating the universe
httpMethod: POST
errorJson: '{ "foo" : "bar", "baz" : [1, 2, 3] }'
requestJson: '{ "foo" : "bar", "baz" : [1, 2, 3] }'
properties:
error:
description: User-visible unstructured error message
example: There was a problem creating the universe
type: string
errorJson:
description: User visible structured error message as json object
example: '{ "foo" : "bar", "baz" : [1, 2, 3] }'
properties: {}
type: object
httpMethod:
description: Method for HTTP call that resulted in this error
example: POST
type: string
requestJson:
description: User request JSON object
example: '{ "foo" : "bar", "baz" : [1, 2, 3] }'
properties: {}
type: object
requestUri:
description: URI for HTTP request that resulted in this error
example: /customers/8918921-af3782-633de/universe/8173ab-fd2453/create
type: string
success:
description: Always set to false to indicate failure
example: false
type: boolean
type: object
RegionCloudInfo:
example:
kubernetes:
kubeNamespace: kubeNamespace
kubernetesImagePullSecretName: kubernetesImagePullSecretName
kubernetesPullSecretContent: kubernetesPullSecretContent
certManagerIssuer: certManagerIssuer
isKubernetesOperatorControlled: true
kubernetesOperatorControlled: true
kubeConfig: kubeConfig
kubeDomain: kubeDomain
overrides: overrides
certManagerIssuerName: certManagerIssuerName
kubernetesPullSecret: kubernetesPullSecret
kubeConfigName: kubeConfigName
certManagerIssuerKind: certManagerIssuerKind
kubePodAddressTemplate: kubePodAddressTemplate
kubernetesProvider: kubernetesProvider
kubeConfigContent: kubeConfigContent
kubernetesPullSecretName: kubernetesPullSecretName
certManagerIssuerGroup: certManagerIssuerGroup
kubernetesImageRegistry: kubernetesImageRegistry
certManagerClusterIssuer: certManagerClusterIssuer
kubernetesStorageClass: kubernetesStorageClass
kubernetesServiceAccount: kubernetesServiceAccount
gcp:
instanceTemplate: instanceTemplate
ybImage: ybImage
aws:
securityGroupId: securityGroupId
vnet: vnet
ybImage: ybImage
arch: x86_64
azu:
securityGroupId: securityGroupId
vnet: vnet
ybImage: ybImage
azuNetworkRGOverride: azuNetworkRGOverride
azuRGOverride: azuRGOverride
properties:
aws:
$ref: '#/components/schemas/AWSRegionCloudInfo'
azu:
$ref: '#/components/schemas/AzureRegionCloudInfo'
gcp:
$ref: '#/components/schemas/GCPRegionCloudInfo'
kubernetes:
$ref: '#/components/schemas/KubernetesRegionInfo'
type: object
AvailabilityZoneDetails:
example:
cloudInfo:
kubernetes:
kubeNamespace: kubeNamespace
kubernetesImagePullSecretName: kubernetesImagePullSecretName
kubernetesPullSecretContent: kubernetesPullSecretContent
certManagerIssuer: certManagerIssuer
isKubernetesOperatorControlled: true
kubernetesOperatorControlled: true
kubeConfig: kubeConfig
kubeDomain: kubeDomain
overrides: overrides
certManagerIssuerName: certManagerIssuerName
kubernetesPullSecret: kubernetesPullSecret
kubeConfigName: kubeConfigName
certManagerIssuerKind: certManagerIssuerKind
kubePodAddressTemplate: kubePodAddressTemplate
kubernetesProvider: kubernetesProvider
kubeConfigContent: kubeConfigContent
kubernetesPullSecretName: kubernetesPullSecretName
certManagerIssuerGroup: certManagerIssuerGroup
kubernetesImageRegistry: kubernetesImageRegistry
certManagerClusterIssuer: certManagerClusterIssuer
kubernetesStorageClass: kubernetesStorageClass
kubernetesServiceAccount: kubernetesServiceAccount
properties:
cloudInfo:
$ref: '#/components/schemas/AZCloudInfo'
type: object
AWSRegionCloudInfo:
example:
securityGroupId: securityGroupId
vnet: vnet
ybImage: ybImage
arch: x86_64
properties:
arch:
description: Deprecated since YBA version 2.20.0. Use provider.imageBundle instead
enum:
- x86_64
- aarch64
type: string
securityGroupId:
type: string
vnet:
type: string
ybImage:
description: Deprecated since YBA version 2.20.0. Use provider.imageBundle instead
type: string
type: object
GCPRegionCloudInfo:
example:
instanceTemplate: instanceTemplate
ybImage: ybImage
properties:
instanceTemplate:
description: The instance template to be used for nodes created in this region.
type: string
ybImage:
description: Deprecated since YBA version 2.20.0. Use provider.imageBundle instead
type: string
type: object
AzureRegionCloudInfo:
example:
securityGroupId: securityGroupId
vnet: vnet
ybImage: ybImage
azuNetworkRGOverride: azuNetworkRGOverride
azuRGOverride: azuRGOverride
properties:
azuNetworkRGOverride:
type: string
azuRGOverride:
type: string
securityGroupId:
type: string
vnet:
type: string
ybImage:
description: Deprecated since YBA version 2.20.0. Use provider.imageBundle instead
type: string
type: object
KubernetesRegionInfo:
example:
kubeNamespace: kubeNamespace
kubernetesImagePullSecretName: kubernetesImagePullSecretName
kubernetesPullSecretContent: kubernetesPullSecretContent
certManagerIssuer: certManagerIssuer
isKubernetesOperatorControlled: true
kubernetesOperatorControlled: true
kubeConfig: kubeConfig
kubeDomain: kubeDomain
overrides: overrides
certManagerIssuerName: certManagerIssuerName
kubernetesPullSecret: kubernetesPullSecret
kubeConfigName: kubeConfigName
certManagerIssuerKind: certManagerIssuerKind
kubePodAddressTemplate: kubePodAddressTemplate
kubernetesProvider: kubernetesProvider
kubeConfigContent: kubeConfigContent
kubernetesPullSecretName: kubernetesPullSecretName
certManagerIssuerGroup: certManagerIssuerGroup
kubernetesImageRegistry: kubernetesImageRegistry
certManagerClusterIssuer: certManagerClusterIssuer
kubernetesStorageClass: kubernetesStorageClass
kubernetesServiceAccount: kubernetesServiceAccount
properties:
certManagerClusterIssuer:
description: Deprecated since YBA version 2024.2.3.0.. Use certManagerIssuerKind and certManagerIssuerName instead
type: string
certManagerIssuer:
description: Deprecated since YBA version 2024.2.3.0.. Use certManagerIssuerKind and certManagerIssuerName instead
type: string
certManagerIssuerGroup:
type: string
certManagerIssuerKind:
type: string
certManagerIssuerName:
type: string
isKubernetesOperatorControlled:
readOnly: true
type: boolean
kubeConfig:
readOnly: true
type: string
kubeConfigContent:
type: string
kubeConfigName:
type: string
kubeDomain:
type: string
kubeNamespace:
type: string
kubePodAddressTemplate:
type: string
kubernetesImagePullSecretName:
type: string
kubernetesImageRegistry:
type: string
kubernetesOperatorControlled:
type: boolean
kubernetesProvider:
type: string
kubernetesPullSecret:
readOnly: true
type: string
kubernetesPullSecretContent:
type: string
kubernetesPullSecretName:
type: string
kubernetesServiceAccount:
description: Deprecated since YBA version 2.17.3.0. kubernetes service account is not needed.
type: string
kubernetesStorageClass:
type: string
overrides:
type: string
required:
- kubernetesOperatorControlled
type: object
Region:
description: Region within a given provider. Typically, this maps to a single cloud provider region.
example:
securityGroupId: securityGroupId
code: us-west-2
ybImage: TODO
latitude: 37.22
name: US West (Oregon)
active: true
details:
cloudInfo:
kubernetes:
kubeNamespace: kubeNamespace
kubernetesImagePullSecretName: kubernetesImagePullSecretName
kubernetesPullSecretContent: kubernetesPullSecretContent
certManagerIssuer: certManagerIssuer
isKubernetesOperatorControlled: true
kubernetesOperatorControlled: true
kubeConfig: kubeConfig
kubeDomain: kubeDomain
overrides: overrides
certManagerIssuerName: certManagerIssuerName
kubernetesPullSecret: kubernetesPullSecret
kubeConfigName: kubeConfigName
certManagerIssuerKind: certManagerIssuerKind
kubePodAddressTemplate: kubePodAddressTemplate
kubernetesProvider: kubernetesProvider
kubeConfigContent: kubeConfigContent
kubernetesPullSecretName: kubernetesPullSecretName
certManagerIssuerGroup: certManagerIssuerGroup
kubernetesImageRegistry: kubernetesImageRegistry
certManagerClusterIssuer: certManagerClusterIssuer
kubernetesStorageClass: kubernetesStorageClass
kubernetesServiceAccount: kubernetesServiceAccount
gcp:
instanceTemplate: instanceTemplate
ybImage: ybImage
aws:
securityGroupId: securityGroupId
vnet: vnet
ybImage: ybImage
arch: x86_64
azu:
securityGroupId: securityGroupId
vnet: vnet
ybImage: ybImage
azuNetworkRGOverride: azuNetworkRGOverride
azuRGOverride: azuRGOverride
vnetName: vnetName
zones:
- subnet: subnet id
code: us-west1-a
name: us-west1-a
active: true
details:
cloudInfo:
kubernetes:
kubeNamespace: kubeNamespace
kubernetesImagePullSecretName: kubernetesImagePullSecretName
kubernetesPullSecretContent: kubernetesPullSecretContent
certManagerIssuer: certManagerIssuer
isKubernetesOperatorControlled: true
kubernetesOperatorControlled: true
kubeConfig: kubeConfig
kubeDomain: kubeDomain
overrides: overrides
certManagerIssuerName: certManagerIssuerName
kubernetesPullSecret: kubernetesPullSecret
kubeConfigName: kubeConfigName
certManagerIssuerKind: certManagerIssuerKind
kubePodAddressTemplate: kubePodAddressTemplate
kubernetesProvider: kubernetesProvider
kubeConfigContent: kubeConfigContent
kubernetesPullSecretName: kubernetesPullSecretName
certManagerIssuerGroup: certManagerIssuerGroup
kubernetesImageRegistry: kubernetesImageRegistry
certManagerClusterIssuer: certManagerClusterIssuer
kubernetesStorageClass: kubernetesStorageClass
kubernetesServiceAccount: kubernetesServiceAccount
kubeconfigPath: kubeconfigPath
config:
key: config
uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
secondarySubnet: secondary subnet id
- subnet: subnet id
code: us-west1-a
name: us-west1-a
active: true
details:
cloudInfo:
kubernetes:
kubeNamespace: kubeNamespace
kubernetesImagePullSecretName: kubernetesImagePullSecretName
kubernetesPullSecretContent: kubernetesPullSecretContent
certManagerIssuer: certManagerIssuer
isKubernetesOperatorControlled: true
kubernetesOperatorControlled: true
kubeConfig: kubeConfig
kubeDomain: kubeDomain
overrides: overrides
certManagerIssuerName: certManagerIssuerName
kubernetesPullSecret: kubernetesPullSecret
kubeConfigName: kubeConfigName
certManagerIssuerKind: certManagerIssuerKind
kubePodAddressTemplate: kubePodAddressTemplate
kubernetesProvider: kubernetesProvider
kubeConfigContent: kubeConfigContent
kubernetesPullSecretName: kubernetesPullSecretName
certManagerIssuerGroup: certManagerIssuerGroup
kubernetesImageRegistry: kubernetesImageRegistry
certManagerClusterIssuer: certManagerClusterIssuer
kubernetesStorageClass: kubernetesStorageClass
kubernetesServiceAccount: kubernetesServiceAccount
kubeconfigPath: kubeconfigPath
config:
key: config
uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
secondarySubnet: secondary subnet id
config:
key: config
uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
longitude: -120.01
properties:
active:
readOnly: true
type: boolean
code:
description: Cloud provider region code
example: us-west-2
type: string
config:
additionalProperties:
type: string
type: object
details:
$ref: '#/components/schemas/RegionDetails'
latitude:
description: The region's latitude
example: 37.22
format: double
readOnly: true
type: number
longitude:
description: The region's longitude
example: -120.01
format: double
readOnly: true
type: number
name:
description: Cloud provider region name
example: US West (Oregon)
readOnly: true
type: string
securityGroupId:
description: Deprecated since YBA version 2.17.2.0. Moved to regionDetails.cloudInfo aws/azure securityGroupId property
type: string
uuid:
description: Region UUID
format: uuid
readOnly: true
type: string
vnetName:
description: Deprecated since YBA version 2.17.2.0. Moved to regionDetails.cloudInfo aws/azure vnet property
type: string
ybImage:
description: Deprecated since YBA version 2.17.2.0. Moved to details.cloudInfo aws/gcp/azure ybImage property
example: TODO
type: string
zones:
items:
$ref: '#/components/schemas/AvailabilityZone'
type: array
required:
- zones
type: object
AZCloudInfo:
example:
kubernetes:
kubeNamespace: kubeNamespace
kubernetesImagePullSecretName: kubernetesImagePullSecretName
kubernetesPullSecretContent: kubernetesPullSecretContent
certManagerIssuer: certManagerIssuer
isKubernetesOperatorControlled: true
kubernetesOperatorControlled: true
kubeConfig: kubeConfig
kubeDomain: kubeDomain
overrides: overrides
certManagerIssuerName: certManagerIssuerName
kubernetesPullSecret: kubernetesPullSecret
kubeConfigName: kubeConfigName
certManagerIssuerKind: certManagerIssuerKind
kubePodAddressTemplate: kubePodAddressTemplate
kubernetesProvider: kubernetesProvider
kubeConfigContent: kubeConfigContent
kubernetesPullSecretName: kubernetesPullSecretName
certManagerIssuerGroup: certManagerIssuerGroup
kubernetesImageRegistry: kubernetesImageRegistry
certManagerClusterIssuer: certManagerClusterIssuer
kubernetesStorageClass: kubernetesStorageClass
kubernetesServiceAccount: kubernetesServiceAccount
properties:
kubernetes:
$ref: '#/components/schemas/KubernetesRegionInfo'
type: object
RegionDetails:
example:
cloudInfo:
kubernetes:
kubeNamespace: kubeNamespace
kubernetesImagePullSecretName: kubernetesImagePullSecretName
kubernetesPullSecretContent: kubernetesPullSecretContent
certManagerIssuer: certManagerIssuer
isKubernetesOperatorControlled: true
kubernetesOperatorControlled: true
kubeConfig: kubeConfig
kubeDomain: kubeDomain
overrides: overrides
certManagerIssuerName: certManagerIssuerName
kubernetesPullSecret: kubernetesPullSecret
kubeConfigName: kubeConfigName
certManagerIssuerKind: certManagerIssuerKind
kubePodAddressTemplate: kubePodAddressTemplate
kubernetesProvider: kubernetesProvider
kubeConfigContent: kubeConfigContent
kubernetesPullSecretName: kubernetesPullSecretName
certManagerIssuerGroup: certManagerIssuerGroup
kubernetesImageRegistry: kubernetesImageRegistry
certManagerClusterIssuer: certManagerClusterIssuer
kubernetesStorageClass: kubernetesStorageClass
kubernetesServiceAccount: kubernetesServiceAccount
gcp:
instanceTemplate: instanceTemplate
ybImage: ybImage
aws:
securityGroupId: securityGroupId
vnet: vnet
ybImage: ybImage
arch: x86_64
azu:
securityGroupId: securityGroupId
vnet: vnet
ybImage: ybImage
azuNetworkRGOverride: azuNetworkRGOverride
azuRGOverride: azuRGOverride
properties:
cloudInfo:
$ref: '#/components/schemas/RegionCloudInfo'
type: object
AvailabilityZone:
description: Availability zone (AZ) for a region
example:
subnet: subnet id
code: us-west1-a
name: us-west1-a
active: true
details:
cloudInfo:
kubernetes:
kubeNamespace: kubeNamespace
kubernetesImagePullSecretName: kubernetesImagePullSecretName
kubernetesPullSecretContent: kubernetesPullSecretContent
certManagerIssuer: certManagerIssuer
isKubernetesOperatorControlled: true
kubernetesOperatorControlled: true
kubeConfig: kubeConfig
kubeDomain: kubeDomain
overrides: overrides
certManagerIssuerName: certManagerIssuerName
kubernetesPullSecret: kubernetesPullSecret
kubeConfigName: kubeConfigName
certManagerIssuerKind: certManagerIssuerKind
kubePodAddressTemplate: kubePodAddressTemplate
kubernetesProvider: kubernetesProvider
kubeConfigContent: kubeConfigContent
kubernetesPullSecretName: kubernetesPullSecretName
certManagerIssuerGroup: certManagerIssuerGroup
kubernetesImageRegistry: kubernetesImageRegistry
certManagerClusterIssuer: certManagerClusterIssuer
kubernetesStorageClass: kubernetesStorageClass
kubernetesServiceAccount: kubernetesServiceAccount
kubeconfigPath: kubeconfigPath
config:
key: config
uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
secondarySubnet: secondary subnet id
properties:
active:
description: AZ status. This value is `true` for an active AZ.
readOnly: true
type: boolean
code:
description: AZ code
example: us-west1-a
type: string
config:
additionalProperties:
type: string
description: AZ configuration values
type: object
details:
$ref: '#/components/schemas/AvailabilityZoneDetails'
kubeconfigPath:
description: Path to Kubernetes configuration file
readOnly: true
type: string
name:
description: AZ name
example: us-west1-a
type: string
secondarySubnet:
description: AZ secondary subnet
example: secondary subnet id
type: string
subnet:
description: AZ subnet
example: subnet id
type: string
uuid:
description: AZ UUID. This must be specified for existing AZs on update
format: uuid
type: string
required:
- name
type: object
securitySchemes:
apiKeyAuth:
description: API token passed as header
in: header
name: X-AUTH-YW-API-TOKEN
type: apiKey
externalDocs:
description: About YugabyteDB Anywhere
url: https://docs.yugabyte.com/latest/yugabyte-platform/
x-refined-from:
- openapi_2.yaml
- platform.swagger.json