REST Resource: projects.locations.deployments

Resource: Deployment

The Deployment object represents user intent for deploying a specific type of workload.

JSON representation
{
  "name": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "state": enum (State),
  "serviceAccount": string,
  "workerPool": string,

  // Union field workload_config can be only one of the following:
  "sapSystemS4Config": {
    object (SapSystemS4Config)
  },
  "sqlServerWorkload": {
    object (SqlServerWorkload)
  }
  // End of list of possible types for union field workload_config.
}
Fields
name

string

The name of deployment resource. The format will be 'projects/{projectId}/locations/{locationId}/deployments/{deploymentId}'

description

string

Description of the Deployment

createTime

string (Timestamp format)

Output only. [Output only] Create time stamp

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Output only. [Output only] Update time stamp

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

state

enum (State)

Output only. Current state of the deployment.

serviceAccount

string

User-specified Service Account (SA) credentials to be used for cloud build Format: projects/{projectID}/serviceAccounts/{serviceAccount} The default Cloud Build SA will be used initially if this field is not set during deployment creation

workerPool

string

Optional. The user-specified Cloud Build worker pool resource in which the Cloud Build job will execute. Format: projects/{project}/locations/{location}/workerPools/{workerPoolId}. If this field is unspecified, the default Cloud Build worker pool will be used.

Union field workload_config. DeploymentMetadata of the deployment workload_config can be only one of the following:
sapSystemS4Config

object (SapSystemS4Config)

SAP system workload input

sqlServerWorkload

object (SqlServerWorkload)

MS SQL workload input

SapSystemS4Config

Message for sap system workload

JSON representation
{
  "gcpProjectId": string,
  "location": {
    object (LocationDetails)
  },
  "database": {
    object (DatabaseDetails)
  },
  "app": {
    object (AppDetails)
  },
  "allowStoppingForUpdate": boolean,
  "version": enum (Version),
  "environmentType": enum (EnvironmentType),
  "deploymentModel": enum (DeploymentModel),
  "scalingMethod": enum (ScalingMethod),
  "mediaBucketName": string,
  "sapBootDiskImage": string,
  "vmPrefix": string,
  "ansibleRunnerServiceAccount": string
}
Fields
gcpProjectId

string

the project that infrastructure deployed, current only support the same project where the deployment resource exist.

location

object (LocationDetails)

database details

database

object (DatabaseDetails)

database details

app

object (AppDetails)

instance details

allowStoppingForUpdate

boolean

version

enum (Version)

Required. sap hana version

environmentType

enum (EnvironmentType)

Required. deployment environment

deploymentModel

enum (DeploymentModel)

Required. two model non-HA and HA supported

scalingMethod

enum (ScalingMethod)

Required. support scale up and scale out

mediaBucketName

string

Required. mediaBucketName

sapBootDiskImage

string

Optional. sapBootDiskImage

vmPrefix

string

vmPrefix

ansibleRunnerServiceAccount

string

Ansible runner service account - let custoemrs bring their own SA for Ansible runner

LocationDetails

Message for sap instant details

JSON representation
{
  "vpcName": string,
  "zone1Name": string,
  "zone2Name": string,
  "dnsZoneNameSuffix": string,
  "regionName": string,
  "internetAccess": enum (InternetAccess),
  "subnetName": string,
  "dnsZone": string,
  "networkProject": string,
  "createCommsFirewall": boolean
}
Fields
vpcName

string

Required. vpcName

zone1Name

string

Required. zone1Name

zone2Name

string

Optional. zone2Name

dnsZoneNameSuffix

string

Optional. dnsZoneNameSuffix

regionName

string

Required. regionName

internetAccess

enum (InternetAccess)

subnetName

string

Required. subnetName

dnsZone

string

Optional. dns zone name

networkProject

string

Optional. network project

createCommsFirewall

boolean

Optional. create firewall, if true, create firewall for the deployment. This field provides an option to not always create firewall for the deployment.

InternetAccess

InternetAccess

Enums
INTERNETACCESS_UNSPECIFIED
ALLOW_EXTERNAL_IP
CONFIGURE_NAT

DatabaseDetails

Message for sap instant details

JSON representation
{
  "sid": string,
  "machineType": string,
  "diskType": string,
  "secretManagerSecret": string,
  "image": string,
  "instanceId": string,
  "primaryDbVm": string,
  "secondaryDbVm": string,
  "databaseServiceAccount": string
}
Fields
sid

string

Required. The SID is a three-digit server-specific unique identification code.

machineType

string

Required. machine type

diskType

string

Required. diskType

secretManagerSecret

string

Required. secretManagerSecret

image

string

Required. image for database server

instanceId

string

Optional. instance id

primaryDbVm

string

Optional. primary db vm name

secondaryDbVm

string

Optional. secondary db vm name

databaseServiceAccount

string

Database service account - let custoemrs bring their own SA for database

AppDetails

Message for sap instant details

JSON representation
{
  "sid": string,
  "vmsMultiplier": integer,
  "machineType": string,
  "ascsMachineType": string,
  "secretManagerSecret": string,
  "image": string,
  "ascsInstanceId": string,
  "ersInstanceId": string,
  "appInstanceId": string,
  "ascsVm": string,
  "ersVm": string,
  "ascsImage": string,
  "ascsServiceAccount": string,
  "appServiceAccount": string
}
Fields
sid

string

Required. The SAP SID is a three-digit server-specific unique identification code.

vmsMultiplier

integer

Required. vmsMultiplier

machineType

string

Required. machine type

ascsMachineType

string

Required. ascsMachineType

secretManagerSecret

string

Required. secretManagerSecret

image

string

Required. image for app server and ascs server

ascsInstanceId

string

Optional. instance id for ascs

ersInstanceId

string

Optional. instance id for ers

appInstanceId

string

Optional. instance id for app

ascsVm

string

Optional. ASCS vm name

ersVm

string

Optional. ERS vm name

ascsImage

string

Required. image for ascs server

ascsServiceAccount

string

ASCS service account - let custoemrs bring their own SA for ASCS

appServiceAccount

string

Application service account - let custoemrs bring their own SA for application

Version

Version

Enums
VERSION_UNSPECIFIED
S4_HANA_2021
S4_HANA_2022
S4_HANA_2023

EnvironmentType

EnvironmentType

Enums
ENVIRONMENT_TYPE_UNSPECIFIED Unspecified environment type
NON_PRODUCTION Non-production environment type
PRODUCTION Production environment type

DeploymentModel

DeploymentModel

Enums
DEPLOYMENT_MODEL_UNSPECIFIED
DISTRIBUTED
DISTRIBUTED_HA

ScalingMethod

ScalingMethod

Enums
SCALE_METHOD_UNSPECIFIED
SCALE_UP Scale up: Increases the size of a physical machine by increasing the amount of RAM and CPU available for processing
SCALE_OUT Scale out: Combines multiple independent computers into one system

SqlServerWorkload

Message for MS SQL workload

JSON representation
{
  "environmentType": enum (EnvironmentType),
  "operatingSystemType": enum (OperatingSystemType),
  "osImage": string,
  "deploymentModel": enum (DeploymentModel),
  "haType": enum (HAType),
  "vmPrefix": string,
  "mediaBucket": string,
  "location": {
    object (SqlLocationDetails)
  },
  "activeDirectory": {
    object (ActiveDirectory)
  },
  "database": {
    object (Database)
  },
  "pacemaker": {
    object (Pacemaker)
  },
  "fciType": enum (FciType),
  "isSqlPayg": boolean,
  "sqlServerEdition": enum (SqlServerEditionType),
  "sqlServerVersion": enum (SqlServerVersionType),
  "osImageType": enum (OsImageType)
}
Fields
environmentType

enum (EnvironmentType)

Required. deployment environment

operatingSystemType

enum (OperatingSystemType)

Required. type of the operating system the SQL server is going to run on top of

osImage

string

Required. the image of the operating system

deploymentModel

enum (DeploymentModel)

Required. HIGH_AVAILABILITY or SINGLE_INSTANCE

haType

enum (HAType)

Optional. AOAG or FCI, it is only needed for High Availability deployment mode

vmPrefix

string

Required. should be unique in the project

mediaBucket

string

Required. name of the media storing SQL server installation files

location

object (SqlLocationDetails)

Required. location details

activeDirectory

object (ActiveDirectory)

Required. active directory details

database

object (Database)

Required. database details

pacemaker

object (Pacemaker)

Optional. pacemaker configuration, only applicable for Linux HA deployments

fciType

enum (FciType)

Optional. SHARED_DISK or S2D

isSqlPayg

boolean

Required. SQL licensing type

sqlServerEdition

enum (SqlServerEditionType)

Optional. SQL Server Edition type, only applicable when Operating System is Linux

sqlServerVersion

enum (SqlServerVersionType)

Optional. 2017 or 2019 or 2022

osImageType

enum (OsImageType)

Optional. OS image type, it's used to create boot disks for VM instances When either Windows licensing type or SQL licensing type is BYOL, this option is disabled and default to custom image

OperatingSystemType

Operating system type

Enums
OPERATING_SYSTEM_TYPE_UNSPECIFIED Unspecified operating system type
WINDOWS Windows operating system type
UBUNTU Ubuntu operating system type
RED_HAT_ENTERPRISE_LINUX Red Hat Enterprise Linux operating system type
SUSE Suse operating system type

DeploymentModel

Deployment model

Enums
DEPLOYMENT_MODEL_UNSPECIFIED Unspecified deployment model
HIGH_AVAILABILITY High Availability deployment model
SINGLE_INSTANCE Single Instance deployment model

HAType

HA type

Enums
HA_TYPE_UNSPECIFIED Unspecified HA type
AOAG AOAG HA type
FCI FCI HA type

SqlLocationDetails

Location and networking details for configuring SQL server workload

JSON representation
{
  "gcpProjectId": string,
  "region": string,
  "primaryZone": string,
  "secondaryZone": string,
  "network": string,
  "subnetwork": string,
  "internetAccess": enum (InternetAccess),
  "dnsZone": string,
  "tertiaryZone": string
}
Fields
gcpProjectId

string

Required. the project that infrastructure deployed, currently only supports the same project where the deployment resource exists.

region

string

Required. region name

primaryZone

string

Required. primary zone

secondaryZone

string

Optional. secondary zone can't be same as primaryZone and is only for High Availability deployment mode

network

string

Required. network name

subnetwork

string

Required. subnetwork name

internetAccess

enum (InternetAccess)

Required. Internet Access

dnsZone

string

Optional. create a new DNS Zone when the field is empty, Only show for Using an existing DNS List of existing DNS Zones tf variable name: existing_dns_zone_name

tertiaryZone

string

Optional. teriary zone can't be same as primaryZone and secondary zone, and it is only for High Availability deployment mode

InternetAccess

Internet Access options

Enums
INTERNET_ACCESS_UNSPECIFIED Unspecified internet access
ALLOW_EXTERNAL_IP Allow external IP
CONFIGURE_NAT Configure NAT

ActiveDirectory

Active directory details

JSON representation
{
  "type": enum (ActiveDirectoryType),
  "domainUsername": string,
  "secretManagerSecret": string,
  "dnsAddress": string,
  "domain": string
}
Fields
type

enum (ActiveDirectoryType)

Required. active directory type

domainUsername

string

Optional. domain username

secretManagerSecret

string

Required. secretManagerSecret

dnsAddress

string

Optional. DNS IP address

domain

string

Optional. human readable form of a domain such as “google.com”.

ActiveDirectoryType

active directory type options

Enums
ACTIVE_DIRECTORY_TYPE_UNSPECIFIED Unspecified active directory type
GCP_MANAGED GCP managed active directory type
SELF_MANAGED Self managed active directory type

Database

Database details

JSON representation
{
  "secretManagerSecret": string,
  "floatingIpAddress": string,
  "machineType": string,
  "smt": boolean,
  "tempdbOnSsd": boolean,
  "tenancyModel": enum (TenancyModel),
  "soleTenantNode": string,
  "soleTenantNodeType": string
}
Fields
secretManagerSecret

string

Required. secretManagerSecret

floatingIpAddress

string

Optional. only useful for Linux High Availability setup

machineType

string

Required. machine type

smt

boolean

Required. whether simultaneous multithreading is enabled or not

tempdbOnSsd

boolean

Required. whether to have TempDB on local SSD

tenancyModel

enum (TenancyModel)

Required. SHARED or SOLE_TENANT

soleTenantNode

string

Optional. the name of a sole-tenant node/node group

soleTenantNodeType

string

Optional. the type of a sole-tenant node/node group e.g. compute.googleapis.com/node-name

TenancyModel

Tenancy model

Enums
TENANCY_MODEL_UNSPECIFIED Unspecified tenancy model
SHARED Shared tenancy model
SOLE_TENANT Sole Tenant tenancy model

Pacemaker

pacemaker configuration

JSON representation
{
  "pacemakerCluster": string,
  "pacemakerClusterUsername": string,
  "pacemakerClusterSecret": string,
  "sqlPacemakerUsername": string,
  "sqlPacemakerSecret": string,
  "bucketNameNodeCertificates": string
}
Fields
pacemakerCluster

string

Required. pacemaker cluster name

pacemakerClusterUsername

string

Required. pacemaker cluster username

pacemakerClusterSecret

string

Required. pacemaker cluster secret name

sqlPacemakerUsername

string

Required. sql pacemaker username

sqlPacemakerSecret

string

Required. sql pacemaker secret name

bucketNameNodeCertificates

string

Required. bucket location for node certificates

FciType

FCI type, only applicable when Operating System is Windows and HA type is FCI

Enums
FCI_TYPE_UNSPECIFIED Unspecified FCI type
SHARED_DISK SHARED DISK FCI type
S2D S2D FCI type

SqlServerEditionType

SQL Server Edition type, only applicable when Operating System is Linux

Enums
SQL_SERVER_EDITION_TYPE_UNSPECIFIED Unspecified type
SQL_SERVER_EDITION_TYPE_DEVELOPER Developer type
SQL_SERVER_EDITION_TYPE_ENTERPRISE Enterprise type
SQL_SERVER_EDITION_TYPE_STANDARD Standard type
SQL_SERVER_EDITION_TYPE_WEB Web type

SqlServerVersionType

SQL Server Version type, only applicable when Operating System is Linux

Enums
SQL_SERVER_VERSION_TYPE_UNSPECIFIED Unspecified type
SQL_SERVER_VERSION_TYPE_2017 2017 type
SQL_SERVER_VERSION_TYPE_2019 2019 type
SQL_SERVER_VERSION_TYPE_2022 2022 type

OsImageType

OS image type

Enums
OS_IMAGE_TYPE_UNSPECIFIED Unspecified OS image type
PUBLIC_IMAGE Public image
CUSTOM_IMAGE Custom image

State

The state of deployment

Enums
STATE_UNSPECIFIED The default value. This value is used if the state is omitted.
CREATING The deployment is being created.
ACTIVE The deployment is healthy.
UPDATING The deployment is being updated.
DELETING The deployment is being deleted.
FAILED The deployment has encountered an unexpected error.

Methods

create

Creates a new Deployment in a given project and location.

delete

Deletes a single Deployment.

get

Gets details of a single Deployment.

list

Lists Deployments in a given project and location.