Skip to content

Instantly share code, notes, and snippets.

@jplewa
Last active October 19, 2024 13:49
Show Gist options
  • Save jplewa/5bbaa7f9e3ff6f01acf57f14304801b7 to your computer and use it in GitHub Desktop.
Save jplewa/5bbaa7f9e3ff6f01acf57f14304801b7 to your computer and use it in GitHub Desktop.
{
"name": "gcp",
"meta": {
"moduleFormat": "(.*)(?:/[^/]*)"
},
"config": {
"variables": {
"accessApprovalCustomEndpoint": {
"type": "string"
},
"accessContextManagerCustomEndpoint": {
"type": "string"
},
"accessToken": {
"type": "string",
"secret": true
},
"activeDirectoryCustomEndpoint": {
"type": "string"
},
"addPulumiAttributionLabel": {
"type": "boolean"
},
"alloydbCustomEndpoint": {
"type": "string"
},
"apiGatewayCustomEndpoint": {
"type": "string"
},
"apigeeCustomEndpoint": {
"type": "string"
},
"apikeysCustomEndpoint": {
"type": "string"
},
"appEngineCustomEndpoint": {
"type": "string"
},
"apphubCustomEndpoint": {
"type": "string"
},
"artifactRegistryCustomEndpoint": {
"type": "string"
},
"assuredWorkloadsCustomEndpoint": {
"type": "string"
},
"backupDrCustomEndpoint": {
"type": "string"
},
"batching": {
"$ref": "#/types/gcp:config/batching:batching"
},
"beyondcorpCustomEndpoint": {
"type": "string"
},
"bigQueryCustomEndpoint": {
"type": "string"
},
"biglakeCustomEndpoint": {
"type": "string"
},
"bigqueryAnalyticsHubCustomEndpoint": {
"type": "string"
},
"bigqueryConnectionCustomEndpoint": {
"type": "string"
},
"bigqueryDataTransferCustomEndpoint": {
"type": "string"
},
"bigqueryDatapolicyCustomEndpoint": {
"type": "string"
},
"bigqueryReservationCustomEndpoint": {
"type": "string"
},
"bigtableCustomEndpoint": {
"type": "string"
},
"billingCustomEndpoint": {
"type": "string"
},
"billingProject": {
"type": "string"
},
"binaryAuthorizationCustomEndpoint": {
"type": "string"
},
"blockchainNodeEngineCustomEndpoint": {
"type": "string"
},
"certificateManagerCustomEndpoint": {
"type": "string"
},
"cloudAssetCustomEndpoint": {
"type": "string"
},
"cloudBillingCustomEndpoint": {
"type": "string"
},
"cloudBuildCustomEndpoint": {
"type": "string"
},
"cloudBuildWorkerPoolCustomEndpoint": {
"type": "string"
},
"cloudFunctionsCustomEndpoint": {
"type": "string"
},
"cloudIdentityCustomEndpoint": {
"type": "string"
},
"cloudIdsCustomEndpoint": {
"type": "string"
},
"cloudQuotasCustomEndpoint": {
"type": "string"
},
"cloudResourceManagerCustomEndpoint": {
"type": "string"
},
"cloudRunCustomEndpoint": {
"type": "string"
},
"cloudRunV2CustomEndpoint": {
"type": "string"
},
"cloudSchedulerCustomEndpoint": {
"type": "string"
},
"cloudTasksCustomEndpoint": {
"type": "string"
},
"cloudbuildv2CustomEndpoint": {
"type": "string"
},
"clouddeployCustomEndpoint": {
"type": "string"
},
"clouddomainsCustomEndpoint": {
"type": "string"
},
"cloudfunctions2CustomEndpoint": {
"type": "string"
},
"composerCustomEndpoint": {
"type": "string"
},
"computeCustomEndpoint": {
"type": "string"
},
"containerAnalysisCustomEndpoint": {
"type": "string"
},
"containerAttachedCustomEndpoint": {
"type": "string"
},
"containerAwsCustomEndpoint": {
"type": "string"
},
"containerAzureCustomEndpoint": {
"type": "string"
},
"containerCustomEndpoint": {
"type": "string"
},
"coreBillingCustomEndpoint": {
"type": "string"
},
"credentials": {
"type": "string"
},
"dataCatalogCustomEndpoint": {
"type": "string"
},
"dataFusionCustomEndpoint": {
"type": "string"
},
"dataLossPreventionCustomEndpoint": {
"type": "string"
},
"dataPipelineCustomEndpoint": {
"type": "string"
},
"databaseMigrationServiceCustomEndpoint": {
"type": "string"
},
"dataflowCustomEndpoint": {
"type": "string"
},
"dataformCustomEndpoint": {
"type": "string"
},
"dataplexCustomEndpoint": {
"type": "string"
},
"dataprocCustomEndpoint": {
"type": "string"
},
"dataprocMetastoreCustomEndpoint": {
"type": "string"
},
"datastreamCustomEndpoint": {
"type": "string"
},
"defaultLabels": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"deploymentManagerCustomEndpoint": {
"type": "string"
},
"dialogflowCustomEndpoint": {
"type": "string"
},
"dialogflowCxCustomEndpoint": {
"type": "string"
},
"disableGooglePartnerName": {
"type": "boolean"
},
"discoveryEngineCustomEndpoint": {
"type": "string"
},
"dnsCustomEndpoint": {
"type": "string"
},
"documentAiCustomEndpoint": {
"type": "string"
},
"documentAiWarehouseCustomEndpoint": {
"type": "string"
},
"edgecontainerCustomEndpoint": {
"type": "string"
},
"edgenetworkCustomEndpoint": {
"type": "string"
},
"essentialContactsCustomEndpoint": {
"type": "string"
},
"eventarcCustomEndpoint": {
"type": "string"
},
"filestoreCustomEndpoint": {
"type": "string"
},
"firebaseAppCheckCustomEndpoint": {
"type": "string"
},
"firebaseCustomEndpoint": {
"type": "string"
},
"firebaseDatabaseCustomEndpoint": {
"type": "string"
},
"firebaseExtensionsCustomEndpoint": {
"type": "string"
},
"firebaseHostingCustomEndpoint": {
"type": "string"
},
"firebaseStorageCustomEndpoint": {
"type": "string"
},
"firebaserulesCustomEndpoint": {
"type": "string"
},
"firestoreCustomEndpoint": {
"type": "string"
},
"gkeBackupCustomEndpoint": {
"type": "string"
},
"gkeHub2CustomEndpoint": {
"type": "string"
},
"gkeHubCustomEndpoint": {
"type": "string"
},
"gkehubFeatureCustomEndpoint": {
"type": "string"
},
"gkeonpremCustomEndpoint": {
"type": "string"
},
"googlePartnerName": {
"type": "string"
},
"healthcareCustomEndpoint": {
"type": "string"
},
"iam2CustomEndpoint": {
"type": "string"
},
"iamBetaCustomEndpoint": {
"type": "string"
},
"iamCredentialsCustomEndpoint": {
"type": "string"
},
"iamCustomEndpoint": {
"type": "string"
},
"iamWorkforcePoolCustomEndpoint": {
"type": "string"
},
"iapCustomEndpoint": {
"type": "string"
},
"identityPlatformCustomEndpoint": {
"type": "string"
},
"impersonateServiceAccount": {
"type": "string"
},
"impersonateServiceAccountDelegates": {
"type": "array",
"items": {
"type": "string"
}
},
"integrationConnectorsCustomEndpoint": {
"type": "string"
},
"integrationsCustomEndpoint": {
"type": "string"
},
"kmsCustomEndpoint": {
"type": "string"
},
"loggingCustomEndpoint": {
"type": "string"
},
"lookerCustomEndpoint": {
"type": "string"
},
"managedKafkaCustomEndpoint": {
"type": "string"
},
"memcacheCustomEndpoint": {
"type": "string"
},
"migrationCenterCustomEndpoint": {
"type": "string"
},
"mlEngineCustomEndpoint": {
"type": "string"
},
"monitoringCustomEndpoint": {
"type": "string"
},
"netappCustomEndpoint": {
"type": "string"
},
"networkConnectivityCustomEndpoint": {
"type": "string"
},
"networkManagementCustomEndpoint": {
"type": "string"
},
"networkSecurityCustomEndpoint": {
"type": "string"
},
"networkServicesCustomEndpoint": {
"type": "string"
},
"notebooksCustomEndpoint": {
"type": "string"
},
"orgPolicyCustomEndpoint": {
"type": "string"
},
"osConfigCustomEndpoint": {
"type": "string"
},
"osLoginCustomEndpoint": {
"type": "string"
},
"parallelstoreCustomEndpoint": {
"type": "string"
},
"privatecaCustomEndpoint": {
"type": "string"
},
"privilegedAccessManagerCustomEndpoint": {
"type": "string"
},
"project": {
"type": "string",
"defaultInfo": {
"environment": [
"GOOGLE_PROJECT",
"GOOGLE_CLOUD_PROJECT",
"GCLOUD_PROJECT",
"CLOUDSDK_CORE_PROJECT"
]
}
},
"publicCaCustomEndpoint": {
"type": "string"
},
"pubsubCustomEndpoint": {
"type": "string"
},
"pubsubLiteCustomEndpoint": {
"type": "string"
},
"pulumiAttributionLabelAdditionStrategy": {
"type": "string"
},
"recaptchaEnterpriseCustomEndpoint": {
"type": "string"
},
"redisCustomEndpoint": {
"type": "string"
},
"region": {
"type": "string",
"defaultInfo": {
"environment": [
"GOOGLE_REGION",
"GCLOUD_REGION",
"CLOUDSDK_COMPUTE_REGION"
]
}
},
"requestReason": {
"type": "string"
},
"requestTimeout": {
"type": "string"
},
"resourceManagerCustomEndpoint": {
"type": "string"
},
"resourceManagerV3CustomEndpoint": {
"type": "string"
},
"runtimeConfigCustomEndpoint": {
"type": "string"
},
"runtimeconfigCustomEndpoint": {
"type": "string"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"secretManagerCustomEndpoint": {
"type": "string"
},
"secureSourceManagerCustomEndpoint": {
"type": "string"
},
"securityCenterCustomEndpoint": {
"type": "string"
},
"securityCenterManagementCustomEndpoint": {
"type": "string"
},
"securityCenterV2CustomEndpoint": {
"type": "string"
},
"securityScannerCustomEndpoint": {
"type": "string"
},
"securitypostureCustomEndpoint": {
"type": "string"
},
"serviceDirectoryCustomEndpoint": {
"type": "string"
},
"serviceManagementCustomEndpoint": {
"type": "string"
},
"serviceNetworkingCustomEndpoint": {
"type": "string"
},
"serviceUsageCustomEndpoint": {
"type": "string"
},
"siteVerificationCustomEndpoint": {
"type": "string"
},
"skipRegionValidation": {
"type": "boolean",
"default": false,
"defaultInfo": {
"environment": [
"PULUMI_GCP_SKIP_REGION_VALIDATION"
]
}
},
"sourceRepoCustomEndpoint": {
"type": "string"
},
"spannerCustomEndpoint": {
"type": "string"
},
"sqlCustomEndpoint": {
"type": "string"
},
"storageCustomEndpoint": {
"type": "string"
},
"storageInsightsCustomEndpoint": {
"type": "string"
},
"storageTransferCustomEndpoint": {
"type": "string"
},
"tagsCustomEndpoint": {
"type": "string"
},
"tagsLocationCustomEndpoint": {
"type": "string"
},
"tpuCustomEndpoint": {
"type": "string"
},
"tpuV2CustomEndpoint": {
"type": "string"
},
"universeDomain": {
"type": "string"
},
"userProjectOverride": {
"type": "boolean"
},
"vertexAiCustomEndpoint": {
"type": "string"
},
"vmwareengineCustomEndpoint": {
"type": "string"
},
"vpcAccessCustomEndpoint": {
"type": "string"
},
"workbenchCustomEndpoint": {
"type": "string"
},
"workflowsCustomEndpoint": {
"type": "string"
},
"workstationsCustomEndpoint": {
"type": "string"
},
"zone": {
"type": "string",
"defaultInfo": {
"environment": [
"GOOGLE_ZONE",
"GCLOUD_ZONE",
"CLOUDSDK_COMPUTE_ZONE"
]
}
}
}
},
"language": {
"csharp": {
"packageReferences": {
"Pulumi": "3.*"
},
"namespaces": {
"accessapproval": "AccessApproval",
"accesscontextmanager": "AccessContextManager",
"activedirectory": "ActiveDirectory",
"alloydb": "Alloydb",
"apigateway": "ApiGateway",
"apigee": "Apigee",
"appengine": "AppEngine",
"apphub": "Apphub",
"applicationintegration": "ApplicationIntegration",
"artifactregistry": "ArtifactRegistry",
"assuredworkloads": "AssuredWorkloads",
"backupdisasterrecovery": "BackupDisasterRecovery",
"beyondcorp": "Beyondcorp",
"biglake": "BigLake",
"bigquery": "BigQuery",
"bigqueryanalyticshub": "BigQueryAnalyticsHub",
"bigquerydatapolicy": "BigQueryDataPolicy",
"bigtable": "BigTable",
"billing": "Billing",
"binaryauthorization": "BinaryAuthorization",
"blockchainnodeengine": "BlockchainNodeEngine",
"certificateauthority": "CertificateAuthority",
"certificatemanager": "CertificateManager",
"cloudasset": "CloudAsset",
"cloudbuild": "CloudBuild",
"cloudbuildv2": "CloudBuildV2",
"clouddeploy": "CloudDeploy",
"clouddomains": "CloudDomains",
"cloudfunctions": "CloudFunctions",
"cloudfunctionsv2": "CloudFunctionsV2",
"cloudidentity": "CloudIdentity",
"cloudids": "CloudIds",
"cloudquota": "CloudQuota",
"cloudrun": "CloudRun",
"cloudrunv2": "CloudRunV2",
"cloudscheduler": "CloudScheduler",
"cloudtasks": "CloudTasks",
"composer": "Composer",
"compute": "Compute",
"container": "Container",
"containeranalysis": "ContainerAnalysis",
"databasemigrationservice": "DatabaseMigrationService",
"datacatalog": "DataCatalog",
"dataflow": "Dataflow",
"dataform": "Dataform",
"datafusion": "DataFusion",
"dataloss": "DataLoss",
"dataplex": "DataPlex",
"dataproc": "Dataproc",
"datastream": "Datastream",
"deploymentmanager": "DeploymentManager",
"diagflow": "Diagflow",
"discoveryengine": "DiscoveryEngine",
"dns": "Dns",
"edgecontainer": "EdgeContainer",
"edgenetwork": "EdgeNetwork",
"endpoints": "Endpoints",
"essentialcontacts": "EssentialContacts",
"eventarc": "Eventarc",
"filestore": "Filestore",
"firebase": "Firebase",
"firebaserules": "Firebaserules",
"firestore": "Firestore",
"folder": "Folder",
"gcp": "Gcp",
"gkebackup": "GkeBackup",
"gkehub": "GkeHub",
"gkeonprem": "GkeOnPrem",
"healthcare": "Healthcare",
"iam": "Iam",
"iap": "Iap",
"identityplatform": "IdentityPlatform",
"integrationconnectors": "IntegrationConnectors",
"kms": "Kms",
"logging": "Logging",
"looker": "Looker",
"managedkafka": "ManagedKafka",
"memcache": "Memcache",
"migrationcenter": "MigrationCenter",
"ml": "ML",
"monitoring": "Monitoring",
"netapp": "Netapp",
"networkconnectivity": "NetworkConnectivity",
"networkmanagement": "NetworkManagement",
"networksecurity": "NetworkSecurity",
"networkservices": "NetworkServices",
"notebooks": "Notebooks",
"organizations": "Organizations",
"orgpolicy": "OrgPolicy",
"osconfig": "OsConfig",
"oslogin": "OsLogin",
"parallelstore": "ParallelStore",
"privilegedaccessmanager": "PrivilegedAccessManager",
"projects": "Projects",
"pubsub": "PubSub",
"recaptcha": "Recaptcha",
"redis": "Redis",
"resourcemanager": "ResourceManager",
"runtimeconfig": "RuntimeConfig",
"secretmanager": "SecretManager",
"securesourcemanager": "SecureSourceManager",
"securitycenter": "SecurityCenter",
"securityposture": "SecurityPosture",
"serviceaccount": "ServiceAccount",
"servicedirectory": "ServiceDirectory",
"servicenetworking": "ServiceNetworking",
"serviceusage": "ServiceUsage",
"siteverification": "SiteVerification",
"sourcerepo": "SourceRepo",
"spanner": "Spanner",
"sql": "Sql",
"storage": "Storage",
"tags": "Tags",
"tpu": "Tpu",
"vertex": "Vertex",
"vmwareengine": "VMwareEngine",
"vpcaccess": "VpcAccess",
"workbench": "Workbench",
"workflows": "Workflows",
"workstations": "Workstations"
},
"compatibility": "tfbridge20",
"respectSchemaVersion": true
},
"go": {
"importBasePath": "github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp",
"generateResourceContainerTypes": true,
"generateExtraInputTypes": true,
"respectSchemaVersion": true
},
"nodejs": {
"packageDescription": "A Pulumi package for creating and managing Google Cloud Platform resources.",
"readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-google-beta)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-gcp` repo](https://github.com/pulumi/pulumi-gcp/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-google-beta` repo](https://github.com/hashicorp/terraform-provider-google-beta/issues).",
"dependencies": {
"@pulumi/pulumi": "^3.0.0",
"@types/express": "^4.16.0",
"read-package-json": "^2.0.13"
},
"devDependencies": {
"@types/node": "^18.0.0"
},
"resolutions": {
"@types/mime": "3.0.4"
},
"compatibility": "tfbridge20",
"disableUnionOutputTypes": true,
"respectSchemaVersion": true
},
"python": {
"requires": {
"pulumi": ">=3.0.0,<4.0.0"
},
"readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-google-beta)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-gcp` repo](https://github.com/pulumi/pulumi-gcp/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-google-beta` repo](https://github.com/hashicorp/terraform-provider-google-beta/issues).",
"compatibility": "tfbridge20",
"respectSchemaVersion": true,
"pyproject": {
"enabled": true
},
"inputTypes": "classes-and-dicts"
}
},
"provider": {
"description": "The provider type for the google-beta package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
"properties": {
"accessApprovalCustomEndpoint": {
"type": "string"
},
"accessContextManagerCustomEndpoint": {
"type": "string"
},
"accessToken": {
"type": "string",
"secret": true
},
"activeDirectoryCustomEndpoint": {
"type": "string"
},
"addPulumiAttributionLabel": {
"type": "boolean"
},
"alloydbCustomEndpoint": {
"type": "string"
},
"apiGatewayCustomEndpoint": {
"type": "string"
},
"apigeeCustomEndpoint": {
"type": "string"
},
"apikeysCustomEndpoint": {
"type": "string"
},
"appEngineCustomEndpoint": {
"type": "string"
},
"apphubCustomEndpoint": {
"type": "string"
},
"artifactRegistryCustomEndpoint": {
"type": "string"
},
"assuredWorkloadsCustomEndpoint": {
"type": "string"
},
"backupDrCustomEndpoint": {
"type": "string"
},
"batching": {
"$ref": "#/types/gcp:index/ProviderBatching:ProviderBatching"
},
"beyondcorpCustomEndpoint": {
"type": "string"
},
"bigQueryCustomEndpoint": {
"type": "string"
},
"biglakeCustomEndpoint": {
"type": "string"
},
"bigqueryAnalyticsHubCustomEndpoint": {
"type": "string"
},
"bigqueryConnectionCustomEndpoint": {
"type": "string"
},
"bigqueryDataTransferCustomEndpoint": {
"type": "string"
},
"bigqueryDatapolicyCustomEndpoint": {
"type": "string"
},
"bigqueryReservationCustomEndpoint": {
"type": "string"
},
"bigtableCustomEndpoint": {
"type": "string"
},
"billingCustomEndpoint": {
"type": "string"
},
"billingProject": {
"type": "string"
},
"binaryAuthorizationCustomEndpoint": {
"type": "string"
},
"blockchainNodeEngineCustomEndpoint": {
"type": "string"
},
"certificateManagerCustomEndpoint": {
"type": "string"
},
"cloudAssetCustomEndpoint": {
"type": "string"
},
"cloudBillingCustomEndpoint": {
"type": "string"
},
"cloudBuildCustomEndpoint": {
"type": "string"
},
"cloudBuildWorkerPoolCustomEndpoint": {
"type": "string"
},
"cloudFunctionsCustomEndpoint": {
"type": "string"
},
"cloudIdentityCustomEndpoint": {
"type": "string"
},
"cloudIdsCustomEndpoint": {
"type": "string"
},
"cloudQuotasCustomEndpoint": {
"type": "string"
},
"cloudResourceManagerCustomEndpoint": {
"type": "string"
},
"cloudRunCustomEndpoint": {
"type": "string"
},
"cloudRunV2CustomEndpoint": {
"type": "string"
},
"cloudSchedulerCustomEndpoint": {
"type": "string"
},
"cloudTasksCustomEndpoint": {
"type": "string"
},
"cloudbuildv2CustomEndpoint": {
"type": "string"
},
"clouddeployCustomEndpoint": {
"type": "string"
},
"clouddomainsCustomEndpoint": {
"type": "string"
},
"cloudfunctions2CustomEndpoint": {
"type": "string"
},
"composerCustomEndpoint": {
"type": "string"
},
"computeCustomEndpoint": {
"type": "string"
},
"containerAnalysisCustomEndpoint": {
"type": "string"
},
"containerAttachedCustomEndpoint": {
"type": "string"
},
"containerAwsCustomEndpoint": {
"type": "string"
},
"containerAzureCustomEndpoint": {
"type": "string"
},
"containerCustomEndpoint": {
"type": "string"
},
"coreBillingCustomEndpoint": {
"type": "string"
},
"credentials": {
"type": "string"
},
"dataCatalogCustomEndpoint": {
"type": "string"
},
"dataFusionCustomEndpoint": {
"type": "string"
},
"dataLossPreventionCustomEndpoint": {
"type": "string"
},
"dataPipelineCustomEndpoint": {
"type": "string"
},
"databaseMigrationServiceCustomEndpoint": {
"type": "string"
},
"dataflowCustomEndpoint": {
"type": "string"
},
"dataformCustomEndpoint": {
"type": "string"
},
"dataplexCustomEndpoint": {
"type": "string"
},
"dataprocCustomEndpoint": {
"type": "string"
},
"dataprocMetastoreCustomEndpoint": {
"type": "string"
},
"datastreamCustomEndpoint": {
"type": "string"
},
"defaultLabels": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"deploymentManagerCustomEndpoint": {
"type": "string"
},
"dialogflowCustomEndpoint": {
"type": "string"
},
"dialogflowCxCustomEndpoint": {
"type": "string"
},
"disableGooglePartnerName": {
"type": "boolean"
},
"discoveryEngineCustomEndpoint": {
"type": "string"
},
"dnsCustomEndpoint": {
"type": "string"
},
"documentAiCustomEndpoint": {
"type": "string"
},
"documentAiWarehouseCustomEndpoint": {
"type": "string"
},
"edgecontainerCustomEndpoint": {
"type": "string"
},
"edgenetworkCustomEndpoint": {
"type": "string"
},
"essentialContactsCustomEndpoint": {
"type": "string"
},
"eventarcCustomEndpoint": {
"type": "string"
},
"filestoreCustomEndpoint": {
"type": "string"
},
"firebaseAppCheckCustomEndpoint": {
"type": "string"
},
"firebaseCustomEndpoint": {
"type": "string"
},
"firebaseDatabaseCustomEndpoint": {
"type": "string"
},
"firebaseExtensionsCustomEndpoint": {
"type": "string"
},
"firebaseHostingCustomEndpoint": {
"type": "string"
},
"firebaseStorageCustomEndpoint": {
"type": "string"
},
"firebaserulesCustomEndpoint": {
"type": "string"
},
"firestoreCustomEndpoint": {
"type": "string"
},
"gkeBackupCustomEndpoint": {
"type": "string"
},
"gkeHub2CustomEndpoint": {
"type": "string"
},
"gkeHubCustomEndpoint": {
"type": "string"
},
"gkehubFeatureCustomEndpoint": {
"type": "string"
},
"gkeonpremCustomEndpoint": {
"type": "string"
},
"googlePartnerName": {
"type": "string"
},
"healthcareCustomEndpoint": {
"type": "string"
},
"iam2CustomEndpoint": {
"type": "string"
},
"iamBetaCustomEndpoint": {
"type": "string"
},
"iamCredentialsCustomEndpoint": {
"type": "string"
},
"iamCustomEndpoint": {
"type": "string"
},
"iamWorkforcePoolCustomEndpoint": {
"type": "string"
},
"iapCustomEndpoint": {
"type": "string"
},
"identityPlatformCustomEndpoint": {
"type": "string"
},
"impersonateServiceAccount": {
"type": "string"
},
"impersonateServiceAccountDelegates": {
"type": "array",
"items": {
"type": "string"
}
},
"integrationConnectorsCustomEndpoint": {
"type": "string"
},
"integrationsCustomEndpoint": {
"type": "string"
},
"kmsCustomEndpoint": {
"type": "string"
},
"loggingCustomEndpoint": {
"type": "string"
},
"lookerCustomEndpoint": {
"type": "string"
},
"managedKafkaCustomEndpoint": {
"type": "string"
},
"memcacheCustomEndpoint": {
"type": "string"
},
"migrationCenterCustomEndpoint": {
"type": "string"
},
"mlEngineCustomEndpoint": {
"type": "string"
},
"monitoringCustomEndpoint": {
"type": "string"
},
"netappCustomEndpoint": {
"type": "string"
},
"networkConnectivityCustomEndpoint": {
"type": "string"
},
"networkManagementCustomEndpoint": {
"type": "string"
},
"networkSecurityCustomEndpoint": {
"type": "string"
},
"networkServicesCustomEndpoint": {
"type": "string"
},
"notebooksCustomEndpoint": {
"type": "string"
},
"orgPolicyCustomEndpoint": {
"type": "string"
},
"osConfigCustomEndpoint": {
"type": "string"
},
"osLoginCustomEndpoint": {
"type": "string"
},
"parallelstoreCustomEndpoint": {
"type": "string"
},
"privatecaCustomEndpoint": {
"type": "string"
},
"privilegedAccessManagerCustomEndpoint": {
"type": "string"
},
"project": {
"type": "string"
},
"publicCaCustomEndpoint": {
"type": "string"
},
"pubsubCustomEndpoint": {
"type": "string"
},
"pubsubLiteCustomEndpoint": {
"type": "string"
},
"pulumiAttributionLabelAdditionStrategy": {
"type": "string"
},
"recaptchaEnterpriseCustomEndpoint": {
"type": "string"
},
"redisCustomEndpoint": {
"type": "string"
},
"region": {
"type": "string"
},
"requestReason": {
"type": "string"
},
"requestTimeout": {
"type": "string"
},
"resourceManagerCustomEndpoint": {
"type": "string"
},
"resourceManagerV3CustomEndpoint": {
"type": "string"
},
"runtimeConfigCustomEndpoint": {
"type": "string"
},
"runtimeconfigCustomEndpoint": {
"type": "string"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"secretManagerCustomEndpoint": {
"type": "string"
},
"secureSourceManagerCustomEndpoint": {
"type": "string"
},
"securityCenterCustomEndpoint": {
"type": "string"
},
"securityCenterManagementCustomEndpoint": {
"type": "string"
},
"securityCenterV2CustomEndpoint": {
"type": "string"
},
"securityScannerCustomEndpoint": {
"type": "string"
},
"securitypostureCustomEndpoint": {
"type": "string"
},
"serviceDirectoryCustomEndpoint": {
"type": "string"
},
"serviceManagementCustomEndpoint": {
"type": "string"
},
"serviceNetworkingCustomEndpoint": {
"type": "string"
},
"serviceUsageCustomEndpoint": {
"type": "string"
},
"siteVerificationCustomEndpoint": {
"type": "string"
},
"sourceRepoCustomEndpoint": {
"type": "string"
},
"spannerCustomEndpoint": {
"type": "string"
},
"sqlCustomEndpoint": {
"type": "string"
},
"storageCustomEndpoint": {
"type": "string"
},
"storageInsightsCustomEndpoint": {
"type": "string"
},
"storageTransferCustomEndpoint": {
"type": "string"
},
"tagsCustomEndpoint": {
"type": "string"
},
"tagsLocationCustomEndpoint": {
"type": "string"
},
"tpuCustomEndpoint": {
"type": "string"
},
"tpuV2CustomEndpoint": {
"type": "string"
},
"universeDomain": {
"type": "string"
},
"userProjectOverride": {
"type": "boolean"
},
"vertexAiCustomEndpoint": {
"type": "string"
},
"vmwareengineCustomEndpoint": {
"type": "string"
},
"vpcAccessCustomEndpoint": {
"type": "string"
},
"workbenchCustomEndpoint": {
"type": "string"
},
"workflowsCustomEndpoint": {
"type": "string"
},
"workstationsCustomEndpoint": {
"type": "string"
},
"zone": {
"type": "string"
}
},
"inputProperties": {
"accessApprovalCustomEndpoint": {
"type": "string"
},
"accessContextManagerCustomEndpoint": {
"type": "string"
},
"accessToken": {
"type": "string",
"secret": true
},
"activeDirectoryCustomEndpoint": {
"type": "string"
},
"addPulumiAttributionLabel": {
"type": "boolean"
},
"alloydbCustomEndpoint": {
"type": "string"
},
"apiGatewayCustomEndpoint": {
"type": "string"
},
"apigeeCustomEndpoint": {
"type": "string"
},
"apikeysCustomEndpoint": {
"type": "string"
},
"appEngineCustomEndpoint": {
"type": "string"
},
"apphubCustomEndpoint": {
"type": "string"
},
"artifactRegistryCustomEndpoint": {
"type": "string"
},
"assuredWorkloadsCustomEndpoint": {
"type": "string"
},
"backupDrCustomEndpoint": {
"type": "string"
},
"batching": {
"$ref": "#/types/gcp:index/ProviderBatching:ProviderBatching"
},
"beyondcorpCustomEndpoint": {
"type": "string"
},
"bigQueryCustomEndpoint": {
"type": "string"
},
"biglakeCustomEndpoint": {
"type": "string"
},
"bigqueryAnalyticsHubCustomEndpoint": {
"type": "string"
},
"bigqueryConnectionCustomEndpoint": {
"type": "string"
},
"bigqueryDataTransferCustomEndpoint": {
"type": "string"
},
"bigqueryDatapolicyCustomEndpoint": {
"type": "string"
},
"bigqueryReservationCustomEndpoint": {
"type": "string"
},
"bigtableCustomEndpoint": {
"type": "string"
},
"billingCustomEndpoint": {
"type": "string"
},
"billingProject": {
"type": "string"
},
"binaryAuthorizationCustomEndpoint": {
"type": "string"
},
"blockchainNodeEngineCustomEndpoint": {
"type": "string"
},
"certificateManagerCustomEndpoint": {
"type": "string"
},
"cloudAssetCustomEndpoint": {
"type": "string"
},
"cloudBillingCustomEndpoint": {
"type": "string"
},
"cloudBuildCustomEndpoint": {
"type": "string"
},
"cloudBuildWorkerPoolCustomEndpoint": {
"type": "string"
},
"cloudFunctionsCustomEndpoint": {
"type": "string"
},
"cloudIdentityCustomEndpoint": {
"type": "string"
},
"cloudIdsCustomEndpoint": {
"type": "string"
},
"cloudQuotasCustomEndpoint": {
"type": "string"
},
"cloudResourceManagerCustomEndpoint": {
"type": "string"
},
"cloudRunCustomEndpoint": {
"type": "string"
},
"cloudRunV2CustomEndpoint": {
"type": "string"
},
"cloudSchedulerCustomEndpoint": {
"type": "string"
},
"cloudTasksCustomEndpoint": {
"type": "string"
},
"cloudbuildv2CustomEndpoint": {
"type": "string"
},
"clouddeployCustomEndpoint": {
"type": "string"
},
"clouddomainsCustomEndpoint": {
"type": "string"
},
"cloudfunctions2CustomEndpoint": {
"type": "string"
},
"composerCustomEndpoint": {
"type": "string"
},
"computeCustomEndpoint": {
"type": "string"
},
"containerAnalysisCustomEndpoint": {
"type": "string"
},
"containerAttachedCustomEndpoint": {
"type": "string"
},
"containerAwsCustomEndpoint": {
"type": "string"
},
"containerAzureCustomEndpoint": {
"type": "string"
},
"containerCustomEndpoint": {
"type": "string"
},
"coreBillingCustomEndpoint": {
"type": "string"
},
"credentials": {
"type": "string"
},
"dataCatalogCustomEndpoint": {
"type": "string"
},
"dataFusionCustomEndpoint": {
"type": "string"
},
"dataLossPreventionCustomEndpoint": {
"type": "string"
},
"dataPipelineCustomEndpoint": {
"type": "string"
},
"databaseMigrationServiceCustomEndpoint": {
"type": "string"
},
"dataflowCustomEndpoint": {
"type": "string"
},
"dataformCustomEndpoint": {
"type": "string"
},
"dataplexCustomEndpoint": {
"type": "string"
},
"dataprocCustomEndpoint": {
"type": "string"
},
"dataprocMetastoreCustomEndpoint": {
"type": "string"
},
"datastreamCustomEndpoint": {
"type": "string"
},
"defaultLabels": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"deploymentManagerCustomEndpoint": {
"type": "string"
},
"dialogflowCustomEndpoint": {
"type": "string"
},
"dialogflowCxCustomEndpoint": {
"type": "string"
},
"disableGooglePartnerName": {
"type": "boolean"
},
"discoveryEngineCustomEndpoint": {
"type": "string"
},
"dnsCustomEndpoint": {
"type": "string"
},
"documentAiCustomEndpoint": {
"type": "string"
},
"documentAiWarehouseCustomEndpoint": {
"type": "string"
},
"edgecontainerCustomEndpoint": {
"type": "string"
},
"edgenetworkCustomEndpoint": {
"type": "string"
},
"essentialContactsCustomEndpoint": {
"type": "string"
},
"eventarcCustomEndpoint": {
"type": "string"
},
"filestoreCustomEndpoint": {
"type": "string"
},
"firebaseAppCheckCustomEndpoint": {
"type": "string"
},
"firebaseCustomEndpoint": {
"type": "string"
},
"firebaseDatabaseCustomEndpoint": {
"type": "string"
},
"firebaseExtensionsCustomEndpoint": {
"type": "string"
},
"firebaseHostingCustomEndpoint": {
"type": "string"
},
"firebaseStorageCustomEndpoint": {
"type": "string"
},
"firebaserulesCustomEndpoint": {
"type": "string"
},
"firestoreCustomEndpoint": {
"type": "string"
},
"gkeBackupCustomEndpoint": {
"type": "string"
},
"gkeHub2CustomEndpoint": {
"type": "string"
},
"gkeHubCustomEndpoint": {
"type": "string"
},
"gkehubFeatureCustomEndpoint": {
"type": "string"
},
"gkeonpremCustomEndpoint": {
"type": "string"
},
"googlePartnerName": {
"type": "string"
},
"healthcareCustomEndpoint": {
"type": "string"
},
"iam2CustomEndpoint": {
"type": "string"
},
"iamBetaCustomEndpoint": {
"type": "string"
},
"iamCredentialsCustomEndpoint": {
"type": "string"
},
"iamCustomEndpoint": {
"type": "string"
},
"iamWorkforcePoolCustomEndpoint": {
"type": "string"
},
"iapCustomEndpoint": {
"type": "string"
},
"identityPlatformCustomEndpoint": {
"type": "string"
},
"impersonateServiceAccount": {
"type": "string"
},
"impersonateServiceAccountDelegates": {
"type": "array",
"items": {
"type": "string"
}
},
"integrationConnectorsCustomEndpoint": {
"type": "string"
},
"integrationsCustomEndpoint": {
"type": "string"
},
"kmsCustomEndpoint": {
"type": "string"
},
"loggingCustomEndpoint": {
"type": "string"
},
"lookerCustomEndpoint": {
"type": "string"
},
"managedKafkaCustomEndpoint": {
"type": "string"
},
"memcacheCustomEndpoint": {
"type": "string"
},
"migrationCenterCustomEndpoint": {
"type": "string"
},
"mlEngineCustomEndpoint": {
"type": "string"
},
"monitoringCustomEndpoint": {
"type": "string"
},
"netappCustomEndpoint": {
"type": "string"
},
"networkConnectivityCustomEndpoint": {
"type": "string"
},
"networkManagementCustomEndpoint": {
"type": "string"
},
"networkSecurityCustomEndpoint": {
"type": "string"
},
"networkServicesCustomEndpoint": {
"type": "string"
},
"notebooksCustomEndpoint": {
"type": "string"
},
"orgPolicyCustomEndpoint": {
"type": "string"
},
"osConfigCustomEndpoint": {
"type": "string"
},
"osLoginCustomEndpoint": {
"type": "string"
},
"parallelstoreCustomEndpoint": {
"type": "string"
},
"privatecaCustomEndpoint": {
"type": "string"
},
"privilegedAccessManagerCustomEndpoint": {
"type": "string"
},
"project": {
"type": "string",
"defaultInfo": {
"environment": [
"GOOGLE_PROJECT",
"GOOGLE_CLOUD_PROJECT",
"GCLOUD_PROJECT",
"CLOUDSDK_CORE_PROJECT"
]
}
},
"publicCaCustomEndpoint": {
"type": "string"
},
"pubsubCustomEndpoint": {
"type": "string"
},
"pubsubLiteCustomEndpoint": {
"type": "string"
},
"pulumiAttributionLabelAdditionStrategy": {
"type": "string"
},
"recaptchaEnterpriseCustomEndpoint": {
"type": "string"
},
"redisCustomEndpoint": {
"type": "string"
},
"region": {
"type": "string",
"defaultInfo": {
"environment": [
"GOOGLE_REGION",
"GCLOUD_REGION",
"CLOUDSDK_COMPUTE_REGION"
]
}
},
"requestReason": {
"type": "string"
},
"requestTimeout": {
"type": "string"
},
"resourceManagerCustomEndpoint": {
"type": "string"
},
"resourceManagerV3CustomEndpoint": {
"type": "string"
},
"runtimeConfigCustomEndpoint": {
"type": "string"
},
"runtimeconfigCustomEndpoint": {
"type": "string"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"secretManagerCustomEndpoint": {
"type": "string"
},
"secureSourceManagerCustomEndpoint": {
"type": "string"
},
"securityCenterCustomEndpoint": {
"type": "string"
},
"securityCenterManagementCustomEndpoint": {
"type": "string"
},
"securityCenterV2CustomEndpoint": {
"type": "string"
},
"securityScannerCustomEndpoint": {
"type": "string"
},
"securitypostureCustomEndpoint": {
"type": "string"
},
"serviceDirectoryCustomEndpoint": {
"type": "string"
},
"serviceManagementCustomEndpoint": {
"type": "string"
},
"serviceNetworkingCustomEndpoint": {
"type": "string"
},
"serviceUsageCustomEndpoint": {
"type": "string"
},
"siteVerificationCustomEndpoint": {
"type": "string"
},
"sourceRepoCustomEndpoint": {
"type": "string"
},
"spannerCustomEndpoint": {
"type": "string"
},
"sqlCustomEndpoint": {
"type": "string"
},
"storageCustomEndpoint": {
"type": "string"
},
"storageInsightsCustomEndpoint": {
"type": "string"
},
"storageTransferCustomEndpoint": {
"type": "string"
},
"tagsCustomEndpoint": {
"type": "string"
},
"tagsLocationCustomEndpoint": {
"type": "string"
},
"tpuCustomEndpoint": {
"type": "string"
},
"tpuV2CustomEndpoint": {
"type": "string"
},
"universeDomain": {
"type": "string"
},
"userProjectOverride": {
"type": "boolean"
},
"vertexAiCustomEndpoint": {
"type": "string"
},
"vmwareengineCustomEndpoint": {
"type": "string"
},
"vpcAccessCustomEndpoint": {
"type": "string"
},
"workbenchCustomEndpoint": {
"type": "string"
},
"workflowsCustomEndpoint": {
"type": "string"
},
"workstationsCustomEndpoint": {
"type": "string"
},
"zone": {
"type": "string",
"defaultInfo": {
"environment": [
"GOOGLE_ZONE",
"GCLOUD_ZONE",
"CLOUDSDK_COMPUTE_ZONE"
]
}
}
}
},
"types": {
"gcp:compute/InstanceAdvancedMachineFeatures:InstanceAdvancedMachineFeatures": {
"properties": {
"enableNestedVirtualization": {
"type": "boolean",
"description": "Defines whether the instance should have nested virtualization enabled. Defaults to false.\n"
},
"threadsPerCore": {
"type": "integer",
"description": "he number of threads per physical core. To disable [simultaneous multithreading (SMT)](https://cloud.google.com/compute/docs/instances/disabling-smt) set this to 1.\n"
},
"visibleCoreCount": {
"type": "integer",
"description": "The number of physical cores to expose to an instance. [visible cores info (VC)](https://cloud.google.com/compute/docs/instances/customize-visible-cores).\n"
}
},
"type": "object"
},
"gcp:compute/InstanceAttachedDisk:InstanceAttachedDisk": {
"properties": {
"deviceName": {
"type": "string",
"description": "Name with which the attached disk will be accessible\nunder `/dev/disk/by-id/google-*`\n"
},
"diskEncryptionKeyRaw": {
"type": "string",
"description": "A 256-bit [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption),\nencoded in [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nto encrypt this disk. Only one of `kms_key_self_link` and `disk_encryption_key_raw` may be set.\n",
"secret": true
},
"diskEncryptionKeySha256": {
"type": "string",
"description": "The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nencoded SHA-256 hash of the [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.\n"
},
"kmsKeySelfLink": {
"type": "string",
"description": "The self_link of the encryption key that is\nstored in Google Cloud KMS to encrypt this disk. Only one of `kms_key_self_link`\nand `disk_encryption_key_raw` may be set.\n"
},
"mode": {
"type": "string",
"description": "Either \"READ_ONLY\" or \"READ_WRITE\", defaults to \"READ_WRITE\"\nIf you have a persistent disk with data that you want to share\nbetween multiple instances, detach it from any read-write instances and\nattach it to one or more instances in read-only mode.\n"
},
"source": {
"type": "string",
"description": "The name or self_link of the disk to attach to this instance.\n"
}
},
"type": "object",
"required": [
"source"
],
"language": {
"nodejs": {
"requiredOutputs": [
"deviceName",
"diskEncryptionKeySha256",
"kmsKeySelfLink",
"source"
]
}
}
},
"gcp:compute/InstanceBootDisk:InstanceBootDisk": {
"properties": {
"autoDelete": {
"type": "boolean",
"description": "Whether the disk will be auto-deleted when the instance\nis deleted. Defaults to true.\n",
"willReplaceOnChanges": true
},
"deviceName": {
"type": "string",
"description": "Name with which attached disk will be accessible.\nOn the instance, this device will be `/dev/disk/by-id/google-{{device_name}}`.\n",
"willReplaceOnChanges": true
},
"diskEncryptionKeyRaw": {
"type": "string",
"description": "A 256-bit [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption),\nencoded in [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nto encrypt this disk. Only one of `kms_key_self_link` and `disk_encryption_key_raw`\nmay be set.\n",
"secret": true,
"willReplaceOnChanges": true
},
"diskEncryptionKeySha256": {
"type": "string",
"description": "The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nencoded SHA-256 hash of the [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.\n"
},
"initializeParams": {
"$ref": "#/types/gcp:compute/InstanceBootDiskInitializeParams:InstanceBootDiskInitializeParams",
"description": "Parameters for a new disk that will be created\nalongside the new instance. Either `initialize_params` or `source` must be set.\nStructure is documented below.\n",
"willReplaceOnChanges": true
},
"kmsKeySelfLink": {
"type": "string",
"description": "The self_link of the encryption key that is\nstored in Google Cloud KMS to encrypt this disk. Only one of `kms_key_self_link`\nand `disk_encryption_key_raw` may be set.\n",
"willReplaceOnChanges": true
},
"mode": {
"type": "string",
"description": "The mode in which to attach this disk, either `READ_WRITE`\nor `READ_ONLY`. If not specified, the default is to attach the disk in `READ_WRITE` mode.\n",
"willReplaceOnChanges": true
},
"source": {
"type": "string",
"description": "The name or self_link of the existing disk (such as those managed by\n`gcp.compute.Disk`) or disk image. To create an instance from a snapshot, first create a\n`gcp.compute.Disk` from a snapshot and reference it here.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
"deviceName",
"diskEncryptionKeySha256",
"initializeParams",
"kmsKeySelfLink",
"source"
]
}
}
},
"gcp:compute/InstanceBootDiskInitializeParams:InstanceBootDiskInitializeParams": {
"properties": {
"enableConfidentialCompute": {
"type": "boolean",
"description": "Whether this disk is using confidential compute mode.\nNote: Only supported on hyperdisk skus, disk_encryption_key is required when setting to true.\n",
"willReplaceOnChanges": true
},
"image": {
"type": "string",
"description": "The image from which to initialize this disk. This can be\none of: the image's `self_link`, `projects/{project}/global/images/{image}`,\n`projects/{project}/global/images/family/{family}`, `global/images/{image}`,\n`global/images/family/{family}`, `family/{family}`, `{project}/{family}`,\n`{project}/{image}`, `{family}`, or `{image}`. If referred by family, the\nimages names must include the family name. If they don't, use the\n[gcp.compute.Image data source](https://www.terraform.io/docs/providers/google/d/compute_image.html).\nFor instance, the image `centos-6-v20180104` includes its family name `centos-6`.\nThese images can be referred by family name here.\n",
"willReplaceOnChanges": true
},
"labels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A set of key/value label pairs assigned to the disk. This\nfield is only applicable for persistent disks.\n",
"willReplaceOnChanges": true
},
"provisionedIops": {
"type": "integer",
"description": "Indicates how many IOPS to provision for the disk.\nThis sets the number of I/O operations per second that the disk can handle.\nFor more details,see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).\nNote: Updating currently is only supported for hyperdisk skus via disk update\napi/gcloud without the need to delete and recreate the disk, hyperdisk allows\nfor an update of IOPS every 4 hours. To update your hyperdisk more frequently,\nyou'll need to manually delete and recreate it.\n",
"willReplaceOnChanges": true
},
"provisionedThroughput": {
"type": "integer",
"description": "Indicates how much throughput to provision for the disk.\nThis sets the number of throughput mb per second that the disk can handle.\nFor more details,see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).\nNote: Updating currently is only supported for hyperdisk skus via disk update\napi/gcloud without the need to delete and recreate the disk, hyperdisk allows\nfor an update of throughput every 4 hours. To update your hyperdisk more\nfrequently, you'll need to manually delete and recreate it.\n",
"willReplaceOnChanges": true
},
"resourceManagerTags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.\n",
"willReplaceOnChanges": true
},
"size": {
"type": "integer",
"description": "The size of the image in gigabytes. If not specified, it\nwill inherit the size of its base image.\n",
"willReplaceOnChanges": true
},
"storagePool": {
"type": "string",
"description": "The URL of the storage pool in which the new disk is created.\nFor example:\n* https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool}\n* /projects/{project}/zones/{zone}/storagePools/{storagePool}\n",
"willReplaceOnChanges": true
},
"type": {
"type": "string",
"description": "The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
"image",
"labels",
"provisionedIops",
"provisionedThroughput",
"size",
"type"
]
}
}
},
"gcp:compute/InstanceConfidentialInstanceConfig:InstanceConfidentialInstanceConfig": {
"properties": {
"confidentialInstanceType": {
"type": "string",
"description": "Defines the confidential computing technology the instance uses. SEV is an AMD feature. TDX is an Intel feature. One of the following values is required: `SEV`, `SEV_SNP`, `TDX`. `on_host_maintenance` can be set to MIGRATE if `confidential_instance_type` is set to `SEV` and `min_cpu_platform` is set to `\"AMD Milan\"`. Otherwise, `on_host_maintenance` has to be set to TERMINATE or this will fail to create the VM. If `SEV_SNP`, currently `min_cpu_platform` has to be set to `\"AMD Milan\"` or this will fail to create the VM. TDX is only available in beta.\n"
},
"enableConfidentialCompute": {
"type": "boolean",
"description": "Defines whether the instance should have confidential compute enabled with AMD SEV. If enabled, `on_host_maintenance` can be set to MIGRATE if `min_cpu_platform` is set to `\"AMD Milan\"`. Otherwise, `on_host_maintenance` has to be set to TERMINATE or this will fail to create the VM.\n"
}
},
"type": "object"
},
"gcp:compute/InstanceGuestAccelerator:InstanceGuestAccelerator": {
"properties": {
"count": {
"type": "integer",
"description": "The number of the guest accelerator cards exposed to this instance.\n",
"willReplaceOnChanges": true
},
"type": {
"type": "string",
"description": "The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"count",
"type"
]
},
"gcp:compute/InstanceNetworkInterface:InstanceNetworkInterface": {
"properties": {
"accessConfigs": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceNetworkInterfaceAccessConfig:InstanceNetworkInterfaceAccessConfig"
},
"description": "Access configurations, i.e. IPs via which this instance can be accessed via the Internet.\n"
},
"aliasIpRanges": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceNetworkInterfaceAliasIpRange:InstanceNetworkInterfaceAliasIpRange"
},
"description": "An\narray of alias IP ranges for this network interface. Can only be specified for network\ninterfaces on subnet-mode networks. Structure documented below.\n"
},
"internalIpv6PrefixLength": {
"type": "integer",
"description": "The prefix length of the primary internal IPv6 range.\n"
},
"ipv6AccessConfigs": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceNetworkInterfaceIpv6AccessConfig:InstanceNetworkInterfaceIpv6AccessConfig"
},
"description": "An array of IPv6 access configurations for this interface.\nCurrently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig\nspecified, then this instance will have no external IPv6 Internet access. Structure documented below.\n"
},
"ipv6AccessType": {
"type": "string",
"description": "One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet.\nThis field is always inherited from its subnetwork.\n"
},
"ipv6Address": {
"type": "string",
"description": "An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.\n"
},
"name": {
"type": "string",
"description": "A unique name for the resource, required by GCE.\nChanging this forces a new resource to be created.\n"
},
"network": {
"type": "string",
"description": "The name or self_link of the network to attach this interface to.\nEither `network` or `subnetwork` must be provided. If network isn't provided it will\nbe inferred from the subnetwork.\n"
},
"networkAttachment": {
"type": "string",
"description": "The URL of the network attachment that this interface should connect to in the following format: `projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}`.\n",
"willReplaceOnChanges": true
},
"networkIp": {
"type": "string",
"description": "The private IP address to assign to the instance. If\nempty, the address will be automatically assigned.\n"
},
"nicType": {
"type": "string",
"description": "The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET.\n",
"willReplaceOnChanges": true
},
"queueCount": {
"type": "integer",
"description": "The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.\n",
"willReplaceOnChanges": true
},
"securityPolicy": {
"type": "string",
"description": "A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"
},
"stackType": {
"type": "string",
"description": "The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6 or IPV4_ONLY. If not specified, IPV4_ONLY will be used.\n"
},
"subnetwork": {
"type": "string",
"description": "The name or self_link of the subnetwork to attach this\ninterface to. Either `network` or `subnetwork` must be provided. If network isn't provided\nit will be inferred from the subnetwork. The subnetwork must exist in the same region this\ninstance will be created in. If the network resource is in\n[legacy](https://cloud.google.com/vpc/docs/legacy) mode, do not specify this field. If the\nnetwork is in auto subnet mode, specifying the subnetwork is optional. If the network is\nin custom subnet mode, specifying the subnetwork is required.\n"
},
"subnetworkProject": {
"type": "string",
"description": "The project in which the subnetwork belongs.\nIf the `subnetwork` is a self_link, this field is ignored in favor of the project\ndefined in the subnetwork self_link. If the `subnetwork` is a name and this\nfield is not provided, the provider project is used.\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
"internalIpv6PrefixLength",
"ipv6AccessType",
"ipv6Address",
"name",
"network",
"networkAttachment",
"networkIp",
"stackType",
"subnetwork",
"subnetworkProject"
]
}
}
},
"gcp:compute/InstanceNetworkInterfaceAccessConfig:InstanceNetworkInterfaceAccessConfig": {
"properties": {
"natIp": {
"type": "string",
"description": "The IP address that will be 1:1 mapped to the instance's\nnetwork ip. If not given, one will be generated.\n"
},
"networkTier": {
"type": "string",
"description": "The service-level to be provided for IPv6 traffic when the\nsubnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.\n"
},
"publicPtrDomainName": {
"type": "string",
"description": "The domain name to be used when creating DNSv6\nrecords for the external IPv6 ranges..\n"
},
"securityPolicy": {
"type": "string",
"description": "A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
"natIp",
"networkTier",
"securityPolicy"
]
}
}
},
"gcp:compute/InstanceNetworkInterfaceAliasIpRange:InstanceNetworkInterfaceAliasIpRange": {
"properties": {
"ipCidrRange": {
"type": "string",
"description": "The IP CIDR range represented by this alias IP range. This IP CIDR range\nmust belong to the specified subnetwork and cannot contain IP addresses reserved by\nsystem or used by other network interfaces. This range may be a single IP address\n(e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).\n"
},
"subnetworkRangeName": {
"type": "string",
"description": "The subnetwork secondary range name specifying\nthe secondary range from which to allocate the IP CIDR range for this alias IP\nrange. If left unspecified, the primary range of the subnetwork will be used.\n"
}
},
"type": "object",
"required": [
"ipCidrRange"
]
},
"gcp:compute/InstanceNetworkInterfaceIpv6AccessConfig:InstanceNetworkInterfaceIpv6AccessConfig": {
"properties": {
"externalIpv6": {
"type": "string",
"description": "The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.\n",
"willReplaceOnChanges": true
},
"externalIpv6PrefixLength": {
"type": "string",
"description": "The prefix length of the external IPv6 range.\n",
"willReplaceOnChanges": true
},
"name": {
"type": "string",
"description": "A unique name for the resource, required by GCE.\nChanging this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"networkTier": {
"type": "string",
"description": "The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6\n"
},
"publicPtrDomainName": {
"type": "string",
"description": "The domain name to be used when creating DNSv6 records for the external IPv6 ranges.\n"
},
"securityPolicy": {
"type": "string",
"description": "A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"
}
},
"type": "object",
"required": [
"networkTier"
],
"language": {
"nodejs": {
"requiredOutputs": [
"externalIpv6",
"externalIpv6PrefixLength",
"name",
"networkTier",
"securityPolicy"
]
}
}
},
"gcp:compute/InstanceNetworkPerformanceConfig:InstanceNetworkPerformanceConfig": {
"properties": {
"totalEgressBandwidthTier": {
"type": "string",
"description": "The egress bandwidth tier to enable.\nPossible values: TIER_1, DEFAULT\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"totalEgressBandwidthTier"
]
},
"gcp:compute/InstanceParams:InstanceParams": {
"properties": {
"resourceManagerTags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty.\n"
}
},
"type": "object"
},
"gcp:compute/InstanceReservationAffinity:InstanceReservationAffinity": {
"properties": {
"specificReservation": {
"$ref": "#/types/gcp:compute/InstanceReservationAffinitySpecificReservation:InstanceReservationAffinitySpecificReservation",
"description": "Specifies the label selector for the reservation to use..\nStructure is documented below.\n",
"willReplaceOnChanges": true
},
"type": {
"type": "string",
"description": "The type of reservation from which this instance can consume resources.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"type"
]
},
"gcp:compute/InstanceReservationAffinitySpecificReservation:InstanceReservationAffinitySpecificReservation": {
"properties": {
"key": {
"type": "string",
"description": "Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.\n",
"willReplaceOnChanges": true
},
"values": {
"type": "array",
"items": {
"type": "string"
},
"description": "Corresponds to the label values of a reservation resource.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"key",
"values"
]
},
"gcp:compute/InstanceScheduling:InstanceScheduling": {
"properties": {
"automaticRestart": {
"type": "boolean",
"description": "Specifies if the instance should be\nrestarted if it was terminated by Compute Engine (not a user).\nDefaults to true.\n"
},
"instanceTerminationAction": {
"type": "string",
"description": "Describe the type of termination action for VM. Can be `STOP` or `DELETE`. Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)\n"
},
"localSsdRecoveryTimeout": {
"$ref": "#/types/gcp:compute/InstanceSchedulingLocalSsdRecoveryTimeout:InstanceSchedulingLocalSsdRecoveryTimeout",
"description": "Specifies the maximum amount of time a Local Ssd Vm should wait while\n recovery of the Local Ssd state is attempted. Its value should be in\n between 0 and 168 hours with hour granularity and the default value being 1\n hour.\n",
"willReplaceOnChanges": true
},
"maintenanceInterval": {
"type": "string",
"description": "Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.\n"
},
"maxRunDuration": {
"$ref": "#/types/gcp:compute/InstanceSchedulingMaxRunDuration:InstanceSchedulingMaxRunDuration",
"description": "The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in `instance_termination_action`. Structure is documented below.\n",
"willReplaceOnChanges": true
},
"minNodeCpus": {
"type": "integer",
"description": "The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.\n"
},
"nodeAffinities": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceSchedulingNodeAffinity:InstanceSchedulingNodeAffinity"
},
"description": "Specifies node affinities or anti-affinities\nto determine which sole-tenant nodes your instances and managed instance\ngroups will use as host systems. Read more on sole-tenant node creation\n[here](https://cloud.google.com/compute/docs/nodes/create-nodes).\nStructure documented below.\n"
},
"onHostMaintenance": {
"type": "string",
"description": "Describes maintenance behavior for the\ninstance. Can be MIGRATE or TERMINATE, for more info, read\n[here](https://cloud.google.com/compute/docs/instances/setting-instance-scheduling-options).\n"
},
"onInstanceStopAction": {
"$ref": "#/types/gcp:compute/InstanceSchedulingOnInstanceStopAction:InstanceSchedulingOnInstanceStopAction",
"description": "Specifies the action to be performed when the instance is terminated using `max_run_duration` and `STOP` `instance_termination_action`. Only support `true` `discard_local_ssd` at this point. Structure is documented below.\n",
"willReplaceOnChanges": true
},
"preemptible": {
"type": "boolean",
"description": "Specifies if the instance is preemptible.\nIf this field is set to true, then `automatic_restart` must be\nset to false. Defaults to false.\n",
"willReplaceOnChanges": true
},
"provisioningModel": {
"type": "string",
"description": "Describe the type of preemptible VM. This field accepts the value `STANDARD` or `SPOT`. If the value is `STANDARD`, there will be no discount. If this is set to `SPOT`,\n`preemptible` should be `true` and `automatic_restart` should be\n`false`. For more info about\n`SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
"onHostMaintenance",
"provisioningModel"
]
}
}
},
"gcp:compute/InstanceSchedulingLocalSsdRecoveryTimeout:InstanceSchedulingLocalSsdRecoveryTimeout": {
"properties": {
"nanos": {
"type": "integer",
"description": "Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n",
"willReplaceOnChanges": true
},
"seconds": {
"type": "integer",
"description": "Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"seconds"
]
},
"gcp:compute/InstanceSchedulingMaxRunDuration:InstanceSchedulingMaxRunDuration": {
"properties": {
"nanos": {
"type": "integer",
"description": "Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented with a 0\n`seconds` field and a positive `nanos` field. Must be from 0 to\n999,999,999 inclusive.\n",
"willReplaceOnChanges": true
},
"seconds": {
"type": "integer",
"description": "Span of time at a resolution of a second. Must be from 0 to\n315,576,000,000 inclusive. Note: these bounds are computed from: 60\nsec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"seconds"
]
},
"gcp:compute/InstanceSchedulingNodeAffinity:InstanceSchedulingNodeAffinity": {
"properties": {
"key": {
"type": "string",
"description": "The key for the node affinity label.\n"
},
"operator": {
"type": "string",
"description": "The operator. Can be `IN` for node-affinities\nor `NOT_IN` for anti-affinities.\n"
},
"values": {
"type": "array",
"items": {
"type": "string"
},
"description": "The values for the node affinity label.\n"
}
},
"type": "object",
"required": [
"key",
"operator",
"values"
]
},
"gcp:compute/InstanceSchedulingOnInstanceStopAction:InstanceSchedulingOnInstanceStopAction": {
"properties": {
"discardLocalSsd": {
"type": "boolean",
"description": "Whether to discard local SSDs attached to the VM while terminating using `max_run_duration`. Only supports `true` at this point.\n",
"willReplaceOnChanges": true
}
},
"type": "object"
},
"gcp:compute/InstanceScratchDisk:InstanceScratchDisk": {
"properties": {
"deviceName": {
"type": "string",
"description": "Name with which the attached disk is accessible under /dev/disk/by-id/\n"
},
"interface": {
"type": "string",
"description": "The disk interface to use for attaching this disk; either SCSI or NVME.\n"
},
"size": {
"type": "integer",
"description": "The size of the disk in gigabytes. One of 375 or 3000.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"interface"
],
"language": {
"nodejs": {
"requiredOutputs": [
"deviceName",
"interface"
]
}
}
},
"gcp:compute/InstanceServiceAccount:InstanceServiceAccount": {
"properties": {
"email": {
"type": "string",
"description": "The service account e-mail address.\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of service scopes. Both OAuth2 URLs and gcloud\nshort names are supported. To allow full access to all Cloud APIs, use the\n`cloud-platform` scope. See a complete list of scopes [here](https://cloud.google.com/sdk/gcloud/reference/alpha/compute/instances/set-scopes#--scopes).\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
}
},
"type": "object",
"required": [
"scopes"
],
"language": {
"nodejs": {
"requiredOutputs": [
"email",
"scopes"
]
}
}
},
"gcp:compute/InstanceShieldedInstanceConfig:InstanceShieldedInstanceConfig": {
"properties": {
"enableIntegrityMonitoring": {
"type": "boolean",
"description": "- Compare the most recent boot measurements to the integrity policy baseline and return a pair of pass/fail results depending on whether they match or not. Defaults to true.\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"enableSecureBoot": {
"type": "boolean",
"description": "- Verify the digital signature of all boot components, and halt the boot process if signature verification fails. Defaults to false.\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"enableVtpm": {
"type": "boolean",
"description": "- Use a virtualized trusted platform module, which is a specialized computer chip you can use to encrypt objects like keys and certificates. Defaults to true.\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
}
},
"type": "object"
},
"gcp:index/ProviderBatching:ProviderBatching": {
"properties": {
"enableBatching": {
"type": "boolean"
},
"sendAfter": {
"type": "string"
}
},
"type": "object"
}
},
"resources": {
"gcp:compute/instance:Instance": {
"description": "Manages a VM instance resource within GCE. For more information see\n[the official documentation](https://cloud.google.com/compute/docs/instances)\nand\n[API](https://cloud.google.com/compute/docs/reference/latest/instances).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.serviceaccount.Account(\"default\", {\n accountId: \"my-custom-sa\",\n displayName: \"Custom SA for VM Instance\",\n});\nconst defaultInstance = new gcp.compute.Instance(\"default\", {\n networkInterfaces: [{\n accessConfigs: [{}],\n network: \"default\",\n }],\n name: \"my-instance\",\n machineType: \"n2-standard-2\",\n zone: \"us-central1-a\",\n tags: [\n \"foo\",\n \"bar\",\n ],\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-11\",\n labels: {\n my_label: \"value\",\n },\n },\n },\n scratchDisks: [{\n \"interface\": \"NVME\",\n }],\n metadata: {\n foo: \"bar\",\n },\n metadataStartupScript: \"echo hi > /test.txt\",\n serviceAccount: {\n email: _default.email,\n scopes: [\"cloud-platform\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.serviceaccount.Account(\"default\",\n account_id=\"my-custom-sa\",\n display_name=\"Custom SA for VM Instance\")\ndefault_instance = gcp.compute.Instance(\"default\",\n network_interfaces=[{\n \"access_configs\": [{}],\n \"network\": \"default\",\n }],\n name=\"my-instance\",\n machine_type=\"n2-standard-2\",\n zone=\"us-central1-a\",\n tags=[\n \"foo\",\n \"bar\",\n ],\n boot_disk={\n \"initialize_params\": {\n \"image\": \"debian-cloud/debian-11\",\n \"labels\": {\n \"my_label\": \"value\",\n },\n },\n },\n scratch_disks=[{\n \"interface\": \"NVME\",\n }],\n metadata={\n \"foo\": \"bar\",\n },\n metadata_startup_script=\"echo hi > /test.txt\",\n service_account={\n \"email\": default.email,\n \"scopes\": [\"cloud-platform\"],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() => \n{\n var @default = new Gcp.ServiceAccount.Account(\"default\", new()\n {\n AccountId = \"my-custom-sa\",\n DisplayName = \"Custom SA for VM Instance\",\n });\n\n var defaultInstance = new Gcp.Compute.Instance(\"default\", new()\n {\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n AccessConfigs = new[]\n {\n null,\n },\n Network = \"default\",\n },\n },\n Name = \"my-instance\",\n MachineType = \"n2-standard-2\",\n Zone = \"us-central1-a\",\n Tags = new[]\n {\n \"foo\",\n \"bar\",\n },\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-11\",\n Labels = \n {\n { \"my_label\", \"value\" },\n },\n },\n },\n ScratchDisks = new[]\n {\n new Gcp.Compute.Inputs.InstanceScratchDiskArgs\n {\n Interface = \"NVME\",\n },\n },\n Metadata = \n {\n { \"foo\", \"bar\" },\n },\n MetadataStartupScript = \"echo hi > /test.txt\",\n ServiceAccount = new Gcp.Compute.Inputs.InstanceServiceAccountArgs\n {\n Email = @default.Email,\n Scopes = new[]\n {\n \"cloud-platform\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := serviceaccount.NewAccount(ctx, \"default\", &serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"my-custom-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Custom SA for VM Instance\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstance(ctx, \"default\", &compute.InstanceArgs{\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t&compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tAccessConfigs: compute.InstanceNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\tnil,\n\t\t\t\t\t},\n\t\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tName: pulumi.String(\"my-instance\"),\n\t\t\tMachineType: pulumi.String(\"n2-standard-2\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tBootDisk: &compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"debian-cloud/debian-11\"),\n\t\t\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\t\t\"my_label\": pulumi.String(\"value\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tScratchDisks: compute.InstanceScratchDiskArray{\n\t\t\t\t&compute.InstanceScratchDiskArgs{\n\t\t\t\t\tInterface: pulumi.String(\"NVME\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tMetadataStartupScript: pulumi.String(\"echo hi > /test.txt\"),\n\t\t\tServiceAccount: &compute.InstanceServiceAccountArgs{\n\t\t\t\tEmail: _default.Email,\n\t\t\t\tScopes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"cloud-platform\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceScratchDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceServiceAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Account(\"default\", AccountArgs.builder()\n .accountId(\"my-custom-sa\")\n .displayName(\"Custom SA for VM Instance\")\n .build());\n\n var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder()\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .accessConfigs()\n .network(\"default\")\n .build())\n .name(\"my-instance\")\n .machineType(\"n2-standard-2\")\n .zone(\"us-central1-a\")\n .tags( \n \"foo\",\n \"bar\")\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-11\")\n .labels(Map.of(\"my_label\", \"value\"))\n .build())\n .build())\n .scratchDisks(InstanceScratchDiskArgs.builder()\n .interface_(\"NVME\")\n .build())\n .metadata(Map.of(\"foo\", \"bar\"))\n .metadataStartupScript(\"echo hi > /test.txt\")\n .serviceAccount(InstanceServiceAccountArgs.builder()\n .email(default_.email())\n .scopes(\"cloud-platform\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:serviceaccount:Account\n properties:\n accountId: my-custom-sa\n displayName: Custom SA for VM Instance\n defaultInstance:\n type: gcp:compute:Instance\n name: default\n properties:\n networkInterfaces:\n - accessConfigs:\n - {}\n network: default\n name: my-instance\n machineType: n2-standard-2\n zone: us-central1-a\n tags:\n - foo\n - bar\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-11\n labels:\n my_label: value\n scratchDisks:\n - interface: NVME\n metadata:\n foo: bar\n metadataStartupScript: echo hi > /test.txt\n serviceAccount:\n email: ${default.email}\n scopes:\n - cloud-platform\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nInstances can be imported using any of these accepted formats:\n\n* `projects/{{project}}/zones/{{zone}}/instances/{{name}}`\n\n* `{{project}}/{{zone}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, instances can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/instance:Instance default projects/{{project}}/zones/{{zone}}/instances/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/instance:Instance default {{project}}/{{zone}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/instance:Instance default {{name}}\n```\n\n",
"properties": {
"advancedMachineFeatures": {
"$ref": "#/types/gcp:compute/InstanceAdvancedMachineFeatures:InstanceAdvancedMachineFeatures",
"description": "Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below\n"
},
"allowStoppingForUpdate": {
"type": "boolean",
"description": "If true, allows this prvider to stop the instance to update its properties.\nIf you try to update a property that requires stopping the instance without setting this field, the update will fail.\n"
},
"attachedDisks": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceAttachedDisk:InstanceAttachedDisk"
},
"description": "Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.\n"
},
"bootDisk": {
"$ref": "#/types/gcp:compute/InstanceBootDisk:InstanceBootDisk",
"description": "The boot disk for the instance.\nStructure is documented below.\n"
},
"canIpForward": {
"type": "boolean",
"description": "Whether to allow sending and receiving of\npackets with non-matching source or destination IPs.\nThis defaults to false.\n"
},
"confidentialInstanceConfig": {
"$ref": "#/types/gcp:compute/InstanceConfidentialInstanceConfig:InstanceConfidentialInstanceConfig",
"description": "Enable [Confidential Mode](https://cloud.google.com/compute/confidential-vm/docs/about-cvm) on this VM. Structure is documented below\n"
},
"cpuPlatform": {
"type": "string",
"description": "The CPU platform used by this instance.\n"
},
"currentStatus": {
"type": "string",
"description": "The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see [Instance life cycle](https://cloud.google.com/compute/docs/instances/instance-life-cycle).`,\n"
},
"deletionProtection": {
"type": "boolean",
"description": "Enable deletion protection on this instance. Defaults to false.\n**Note:** you must disable deletion protection before removing the resource (e.g., via `pulumi destroy`), or the instance cannot be deleted and the provider run will not complete successfully.\n"
},
"description": {
"type": "string",
"description": "A brief description of this resource.\n"
},
"desiredStatus": {
"type": "string",
"description": "Desired status of the instance. Either\n`\"RUNNING\"` or `\"TERMINATED\"`.\n"
},
"effectiveLabels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.\n",
"secret": true
},
"enableDisplay": {
"type": "boolean",
"description": "Enable [Virtual Displays](https://cloud.google.com/compute/docs/instances/enable-instance-virtual-display#verify_display_driver) on this instance.\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"guestAccelerators": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceGuestAccelerator:InstanceGuestAccelerator"
},
"description": "List of the type and count of accelerator cards attached to the instance. Structure documented below.\n**Note:** GPU accelerators can only be used with `on_host_maintenance` option set to TERMINATE.\n"
},
"hostname": {
"type": "string",
"description": "A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid.\nValid format is a series of labels 1-63 characters long matching the regular expression `a-z`, concatenated with periods.\nThe entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.\n"
},
"instanceId": {
"type": "string",
"description": "The server-assigned unique identifier of this instance.\n"
},
"labelFingerprint": {
"type": "string",
"description": "The unique fingerprint of the labels.\n"
},
"labels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A map of key/value label pairs to assign to the instance.\n**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.\nPlease refer to the field 'effective_labels' for all of the labels present on the resource.\n"
},
"machineType": {
"type": "string",
"description": "The machine type to create.\n\n**Note:** If you want to update this value (resize the VM) after initial creation, you must set `allow_stopping_for_update` to `true`.\n\n[Custom machine types](https://cloud.google.com/dataproc/docs/concepts/compute/custom-machine-types) can be formatted as `custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB`, e.g. `custom-6-20480` for 6 vCPU and 20GB of RAM.\n\nThere is a limit of 6.5 GB per CPU unless you add [extended memory](https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#extendedmemory). You must do this explicitly by adding the suffix `-ext`, e.g. `custom-2-15360-ext` for 2 vCPU and 15 GB of memory.\n"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Metadata key/value pairs to make available from\nwithin the instance. Ssh keys attached in the Cloud Console will be removed.\nAdd them to your config in order to keep them attached to your instance.\nA list of predefined metadata keys (e.g. ssh-keys) can be found [here](https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys)\n\n> Depending on the OS you choose for your instance, some metadata keys have\nspecial functionality. Most linux-based images will run the content of\n`metadata.startup-script` in a shell on every boot. At a minimum,\nDebian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images\nsupport this key. Windows instances require other keys depending on the format\nof the script and the time you would like it to run - see [this table](https://cloud.google.com/compute/docs/startupscript#providing_a_startup_script_for_windows_instances).\nFor the convenience of the users of `metadata.startup-script`,\nwe provide a special attribute, `metadata_startup_script`, which is documented below.\n"
},
"metadataFingerprint": {
"type": "string",
"description": "The unique fingerprint of the metadata.\n"
},
"metadataStartupScript": {
"type": "string",
"description": "An alternative to using the\nstartup-script metadata key, except this one forces the instance to be recreated\n(thus re-running the script) if it is changed. This replaces the startup-script\nmetadata key on the created instance and thus the two mechanisms are not\nallowed to be used simultaneously. Users are free to use either mechanism - the\nonly distinction is that this separate attribute will cause a recreate on\nmodification. On import, `metadata_startup_script` will not be set - if you\nchoose to specify it you will see a diff immediately after import causing a\ndestroy/recreate operation. If importing an instance and specifying this value\nis desired, you will need to modify your state file.\n"
},
"minCpuPlatform": {
"type": "string",
"description": "Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as\n`Intel Haswell` or `Intel Skylake`. See the complete list [here](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"name": {
"type": "string",
"description": "A unique name for the resource, required by GCE.\nChanging this forces a new resource to be created.\n"
},
"networkInterfaces": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceNetworkInterface:InstanceNetworkInterface"
},
"description": "Networks to attach to the instance. This can\nbe specified multiple times. Structure is documented below.\n\n- - -\n"
},
"networkPerformanceConfig": {
"$ref": "#/types/gcp:compute/InstanceNetworkPerformanceConfig:InstanceNetworkPerformanceConfig",
"description": "(Optional, Beta\nConfigures network performance settings for the instance. Structure is\ndocumented below. **Note**: `machine_type` must be a [supported type](https://cloud.google.com/compute/docs/networking/configure-vm-with-high-bandwidth-configuration),\nthe `image` used must include the [`GVNIC`](https://cloud.google.com/compute/docs/networking/using-gvnic#create-instance-gvnic-image)\nin `guest-os-features`, and `network_interface.0.nic-type` must be `GVNIC`\nin order for this setting to take effect.\n"
},
"params": {
"$ref": "#/types/gcp:compute/InstanceParams:InstanceParams",
"description": "Additional instance parameters.\n.\n"
},
"partnerMetadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Beta key/value pair represents partner metadata assigned to instance where key represent a defined namespace and value is a json string represent the entries associted with the namespace.\n"
},
"project": {
"type": "string",
"description": "The ID of the project in which the resource belongs. If it\nis not provided, the provider project is used.\n"
},
"pulumiLabels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "The combination of labels configured directly on the resource and default labels configured on the provider.\n",
"secret": true
},
"reservationAffinity": {
"$ref": "#/types/gcp:compute/InstanceReservationAffinity:InstanceReservationAffinity",
"description": "Specifies the reservations that this instance can consume from.\nStructure is documented below.\n"
},
"resourcePolicies": {
"type": "string",
"description": "- A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.\n"
},
"scheduling": {
"$ref": "#/types/gcp:compute/InstanceScheduling:InstanceScheduling",
"description": "The scheduling strategy to use. More details about\nthis configuration option are detailed below.\n"
},
"scratchDisks": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceScratchDisk:InstanceScratchDisk"
},
"description": "Scratch disks to attach to the instance. This can be\nspecified multiple times for multiple scratch disks. Structure is documented below.\n"
},
"selfLink": {
"type": "string",
"description": "The URI of the created resource.\n"
},
"serviceAccount": {
"$ref": "#/types/gcp:compute/InstanceServiceAccount:InstanceServiceAccount",
"description": "Service account to attach to the instance.\nStructure is documented below.\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"shieldedInstanceConfig": {
"$ref": "#/types/gcp:compute/InstanceShieldedInstanceConfig:InstanceShieldedInstanceConfig",
"description": "Enable [Shielded VM](https://cloud.google.com/security/shielded-cloud/shielded-vm) on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.\n**Note**: `shielded_instance_config` can only be used with boot images with shielded vm support. See the complete list [here](https://cloud.google.com/compute/docs/images#shielded-images).\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of network tags to attach to the instance.\n"
},
"tagsFingerprint": {
"type": "string",
"description": "The unique fingerprint of the tags.\n"
},
"zone": {
"type": "string",
"description": "The zone that the machine should be created in. If it is not provided, the provider zone is used.\n"
}
},
"required": [
"bootDisk",
"confidentialInstanceConfig",
"cpuPlatform",
"currentStatus",
"effectiveLabels",
"guestAccelerators",
"instanceId",
"labelFingerprint",
"machineType",
"metadataFingerprint",
"minCpuPlatform",
"name",
"networkInterfaces",
"project",
"reservationAffinity",
"scheduling",
"selfLink",
"shieldedInstanceConfig",
"tagsFingerprint",
"pulumiLabels",
"zone"
],
"inputProperties": {
"advancedMachineFeatures": {
"$ref": "#/types/gcp:compute/InstanceAdvancedMachineFeatures:InstanceAdvancedMachineFeatures",
"description": "Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below\n"
},
"allowStoppingForUpdate": {
"type": "boolean",
"description": "If true, allows this prvider to stop the instance to update its properties.\nIf you try to update a property that requires stopping the instance without setting this field, the update will fail.\n"
},
"attachedDisks": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceAttachedDisk:InstanceAttachedDisk"
},
"description": "Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.\n"
},
"bootDisk": {
"$ref": "#/types/gcp:compute/InstanceBootDisk:InstanceBootDisk",
"description": "The boot disk for the instance.\nStructure is documented below.\n",
"willReplaceOnChanges": true
},
"canIpForward": {
"type": "boolean",
"description": "Whether to allow sending and receiving of\npackets with non-matching source or destination IPs.\nThis defaults to false.\n"
},
"confidentialInstanceConfig": {
"$ref": "#/types/gcp:compute/InstanceConfidentialInstanceConfig:InstanceConfidentialInstanceConfig",
"description": "Enable [Confidential Mode](https://cloud.google.com/compute/confidential-vm/docs/about-cvm) on this VM. Structure is documented below\n",
"willReplaceOnChanges": true
},
"deletionProtection": {
"type": "boolean",
"description": "Enable deletion protection on this instance. Defaults to false.\n**Note:** you must disable deletion protection before removing the resource (e.g., via `pulumi destroy`), or the instance cannot be deleted and the provider run will not complete successfully.\n"
},
"description": {
"type": "string",
"description": "A brief description of this resource.\n"
},
"desiredStatus": {
"type": "string",
"description": "Desired status of the instance. Either\n`\"RUNNING\"` or `\"TERMINATED\"`.\n"
},
"enableDisplay": {
"type": "boolean",
"description": "Enable [Virtual Displays](https://cloud.google.com/compute/docs/instances/enable-instance-virtual-display#verify_display_driver) on this instance.\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"guestAccelerators": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceGuestAccelerator:InstanceGuestAccelerator"
},
"description": "List of the type and count of accelerator cards attached to the instance. Structure documented below.\n**Note:** GPU accelerators can only be used with `on_host_maintenance` option set to TERMINATE.\n",
"willReplaceOnChanges": true
},
"hostname": {
"type": "string",
"description": "A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid.\nValid format is a series of labels 1-63 characters long matching the regular expression `a-z`, concatenated with periods.\nThe entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"labels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A map of key/value label pairs to assign to the instance.\n**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.\nPlease refer to the field 'effective_labels' for all of the labels present on the resource.\n"
},
"machineType": {
"type": "string",
"description": "The machine type to create.\n\n**Note:** If you want to update this value (resize the VM) after initial creation, you must set `allow_stopping_for_update` to `true`.\n\n[Custom machine types](https://cloud.google.com/dataproc/docs/concepts/compute/custom-machine-types) can be formatted as `custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB`, e.g. `custom-6-20480` for 6 vCPU and 20GB of RAM.\n\nThere is a limit of 6.5 GB per CPU unless you add [extended memory](https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#extendedmemory). You must do this explicitly by adding the suffix `-ext`, e.g. `custom-2-15360-ext` for 2 vCPU and 15 GB of memory.\n"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Metadata key/value pairs to make available from\nwithin the instance. Ssh keys attached in the Cloud Console will be removed.\nAdd them to your config in order to keep them attached to your instance.\nA list of predefined metadata keys (e.g. ssh-keys) can be found [here](https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys)\n\n> Depending on the OS you choose for your instance, some metadata keys have\nspecial functionality. Most linux-based images will run the content of\n`metadata.startup-script` in a shell on every boot. At a minimum,\nDebian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images\nsupport this key. Windows instances require other keys depending on the format\nof the script and the time you would like it to run - see [this table](https://cloud.google.com/compute/docs/startupscript#providing_a_startup_script_for_windows_instances).\nFor the convenience of the users of `metadata.startup-script`,\nwe provide a special attribute, `metadata_startup_script`, which is documented below.\n"
},
"metadataStartupScript": {
"type": "string",
"description": "An alternative to using the\nstartup-script metadata key, except this one forces the instance to be recreated\n(thus re-running the script) if it is changed. This replaces the startup-script\nmetadata key on the created instance and thus the two mechanisms are not\nallowed to be used simultaneously. Users are free to use either mechanism - the\nonly distinction is that this separate attribute will cause a recreate on\nmodification. On import, `metadata_startup_script` will not be set - if you\nchoose to specify it you will see a diff immediately after import causing a\ndestroy/recreate operation. If importing an instance and specifying this value\nis desired, you will need to modify your state file.\n",
"willReplaceOnChanges": true
},
"minCpuPlatform": {
"type": "string",
"description": "Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as\n`Intel Haswell` or `Intel Skylake`. See the complete list [here](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"name": {
"type": "string",
"description": "A unique name for the resource, required by GCE.\nChanging this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"networkInterfaces": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceNetworkInterface:InstanceNetworkInterface"
},
"description": "Networks to attach to the instance. This can\nbe specified multiple times. Structure is documented below.\n\n- - -\n",
"willReplaceOnChanges": true
},
"networkPerformanceConfig": {
"$ref": "#/types/gcp:compute/InstanceNetworkPerformanceConfig:InstanceNetworkPerformanceConfig",
"description": "(Optional, Beta\nConfigures network performance settings for the instance. Structure is\ndocumented below. **Note**: `machine_type` must be a [supported type](https://cloud.google.com/compute/docs/networking/configure-vm-with-high-bandwidth-configuration),\nthe `image` used must include the [`GVNIC`](https://cloud.google.com/compute/docs/networking/using-gvnic#create-instance-gvnic-image)\nin `guest-os-features`, and `network_interface.0.nic-type` must be `GVNIC`\nin order for this setting to take effect.\n",
"willReplaceOnChanges": true
},
"params": {
"$ref": "#/types/gcp:compute/InstanceParams:InstanceParams",
"description": "Additional instance parameters.\n.\n",
"willReplaceOnChanges": true
},
"partnerMetadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Beta key/value pair represents partner metadata assigned to instance where key represent a defined namespace and value is a json string represent the entries associted with the namespace.\n"
},
"project": {
"type": "string",
"description": "The ID of the project in which the resource belongs. If it\nis not provided, the provider project is used.\n",
"willReplaceOnChanges": true
},
"reservationAffinity": {
"$ref": "#/types/gcp:compute/InstanceReservationAffinity:InstanceReservationAffinity",
"description": "Specifies the reservations that this instance can consume from.\nStructure is documented below.\n",
"willReplaceOnChanges": true
},
"resourcePolicies": {
"type": "string",
"description": "- A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.\n"
},
"scheduling": {
"$ref": "#/types/gcp:compute/InstanceScheduling:InstanceScheduling",
"description": "The scheduling strategy to use. More details about\nthis configuration option are detailed below.\n"
},
"scratchDisks": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceScratchDisk:InstanceScratchDisk"
},
"description": "Scratch disks to attach to the instance. This can be\nspecified multiple times for multiple scratch disks. Structure is documented below.\n",
"willReplaceOnChanges": true
},
"serviceAccount": {
"$ref": "#/types/gcp:compute/InstanceServiceAccount:InstanceServiceAccount",
"description": "Service account to attach to the instance.\nStructure is documented below.\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"shieldedInstanceConfig": {
"$ref": "#/types/gcp:compute/InstanceShieldedInstanceConfig:InstanceShieldedInstanceConfig",
"description": "Enable [Shielded VM](https://cloud.google.com/security/shielded-cloud/shielded-vm) on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.\n**Note**: `shielded_instance_config` can only be used with boot images with shielded vm support. See the complete list [here](https://cloud.google.com/compute/docs/images#shielded-images).\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of network tags to attach to the instance.\n"
},
"zone": {
"type": "string",
"description": "The zone that the machine should be created in. If it is not provided, the provider zone is used.\n",
"willReplaceOnChanges": true
}
},
"requiredInputs": [
"bootDisk",
"machineType",
"networkInterfaces"
],
"stateInputs": {
"description": "Input properties used for looking up and filtering Instance resources.\n",
"properties": {
"advancedMachineFeatures": {
"$ref": "#/types/gcp:compute/InstanceAdvancedMachineFeatures:InstanceAdvancedMachineFeatures",
"description": "Configure Nested Virtualisation and Simultaneous Hyper Threading on this VM. Structure is documented below\n"
},
"allowStoppingForUpdate": {
"type": "boolean",
"description": "If true, allows this prvider to stop the instance to update its properties.\nIf you try to update a property that requires stopping the instance without setting this field, the update will fail.\n"
},
"attachedDisks": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceAttachedDisk:InstanceAttachedDisk"
},
"description": "Additional disks to attach to the instance. Can be repeated multiple times for multiple disks. Structure is documented below.\n"
},
"bootDisk": {
"$ref": "#/types/gcp:compute/InstanceBootDisk:InstanceBootDisk",
"description": "The boot disk for the instance.\nStructure is documented below.\n",
"willReplaceOnChanges": true
},
"canIpForward": {
"type": "boolean",
"description": "Whether to allow sending and receiving of\npackets with non-matching source or destination IPs.\nThis defaults to false.\n"
},
"confidentialInstanceConfig": {
"$ref": "#/types/gcp:compute/InstanceConfidentialInstanceConfig:InstanceConfidentialInstanceConfig",
"description": "Enable [Confidential Mode](https://cloud.google.com/compute/confidential-vm/docs/about-cvm) on this VM. Structure is documented below\n",
"willReplaceOnChanges": true
},
"cpuPlatform": {
"type": "string",
"description": "The CPU platform used by this instance.\n"
},
"currentStatus": {
"type": "string",
"description": "The current status of the instance. This could be one of the following values: PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more information about the status of the instance, see [Instance life cycle](https://cloud.google.com/compute/docs/instances/instance-life-cycle).`,\n"
},
"deletionProtection": {
"type": "boolean",
"description": "Enable deletion protection on this instance. Defaults to false.\n**Note:** you must disable deletion protection before removing the resource (e.g., via `pulumi destroy`), or the instance cannot be deleted and the provider run will not complete successfully.\n"
},
"description": {
"type": "string",
"description": "A brief description of this resource.\n"
},
"desiredStatus": {
"type": "string",
"description": "Desired status of the instance. Either\n`\"RUNNING\"` or `\"TERMINATED\"`.\n"
},
"effectiveLabels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.\n",
"secret": true
},
"enableDisplay": {
"type": "boolean",
"description": "Enable [Virtual Displays](https://cloud.google.com/compute/docs/instances/enable-instance-virtual-display#verify_display_driver) on this instance.\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"guestAccelerators": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceGuestAccelerator:InstanceGuestAccelerator"
},
"description": "List of the type and count of accelerator cards attached to the instance. Structure documented below.\n**Note:** GPU accelerators can only be used with `on_host_maintenance` option set to TERMINATE.\n",
"willReplaceOnChanges": true
},
"hostname": {
"type": "string",
"description": "A custom hostname for the instance. Must be a fully qualified DNS name and RFC-1035-valid.\nValid format is a series of labels 1-63 characters long matching the regular expression `a-z`, concatenated with periods.\nThe entire hostname must not exceed 253 characters. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"instanceId": {
"type": "string",
"description": "The server-assigned unique identifier of this instance.\n"
},
"labelFingerprint": {
"type": "string",
"description": "The unique fingerprint of the labels.\n"
},
"labels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A map of key/value label pairs to assign to the instance.\n**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.\nPlease refer to the field 'effective_labels' for all of the labels present on the resource.\n"
},
"machineType": {
"type": "string",
"description": "The machine type to create.\n\n**Note:** If you want to update this value (resize the VM) after initial creation, you must set `allow_stopping_for_update` to `true`.\n\n[Custom machine types](https://cloud.google.com/dataproc/docs/concepts/compute/custom-machine-types) can be formatted as `custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB`, e.g. `custom-6-20480` for 6 vCPU and 20GB of RAM.\n\nThere is a limit of 6.5 GB per CPU unless you add [extended memory](https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#extendedmemory). You must do this explicitly by adding the suffix `-ext`, e.g. `custom-2-15360-ext` for 2 vCPU and 15 GB of memory.\n"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Metadata key/value pairs to make available from\nwithin the instance. Ssh keys attached in the Cloud Console will be removed.\nAdd them to your config in order to keep them attached to your instance.\nA list of predefined metadata keys (e.g. ssh-keys) can be found [here](https://cloud.google.com/compute/docs/metadata/predefined-metadata-keys)\n\n> Depending on the OS you choose for your instance, some metadata keys have\nspecial functionality. Most linux-based images will run the content of\n`metadata.startup-script` in a shell on every boot. At a minimum,\nDebian, CentOS, RHEL, SLES, Container-Optimized OS, and Ubuntu images\nsupport this key. Windows instances require other keys depending on the format\nof the script and the time you would like it to run - see [this table](https://cloud.google.com/compute/docs/startupscript#providing_a_startup_script_for_windows_instances).\nFor the convenience of the users of `metadata.startup-script`,\nwe provide a special attribute, `metadata_startup_script`, which is documented below.\n"
},
"metadataFingerprint": {
"type": "string",
"description": "The unique fingerprint of the metadata.\n"
},
"metadataStartupScript": {
"type": "string",
"description": "An alternative to using the\nstartup-script metadata key, except this one forces the instance to be recreated\n(thus re-running the script) if it is changed. This replaces the startup-script\nmetadata key on the created instance and thus the two mechanisms are not\nallowed to be used simultaneously. Users are free to use either mechanism - the\nonly distinction is that this separate attribute will cause a recreate on\nmodification. On import, `metadata_startup_script` will not be set - if you\nchoose to specify it you will see a diff immediately after import causing a\ndestroy/recreate operation. If importing an instance and specifying this value\nis desired, you will need to modify your state file.\n",
"willReplaceOnChanges": true
},
"minCpuPlatform": {
"type": "string",
"description": "Specifies a minimum CPU platform for the VM instance. Applicable values are the friendly names of CPU platforms, such as\n`Intel Haswell` or `Intel Skylake`. See the complete list [here](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"name": {
"type": "string",
"description": "A unique name for the resource, required by GCE.\nChanging this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"networkInterfaces": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceNetworkInterface:InstanceNetworkInterface"
},
"description": "Networks to attach to the instance. This can\nbe specified multiple times. Structure is documented below.\n\n- - -\n",
"willReplaceOnChanges": true
},
"networkPerformanceConfig": {
"$ref": "#/types/gcp:compute/InstanceNetworkPerformanceConfig:InstanceNetworkPerformanceConfig",
"description": "(Optional, Beta\nConfigures network performance settings for the instance. Structure is\ndocumented below. **Note**: `machine_type` must be a [supported type](https://cloud.google.com/compute/docs/networking/configure-vm-with-high-bandwidth-configuration),\nthe `image` used must include the [`GVNIC`](https://cloud.google.com/compute/docs/networking/using-gvnic#create-instance-gvnic-image)\nin `guest-os-features`, and `network_interface.0.nic-type` must be `GVNIC`\nin order for this setting to take effect.\n",
"willReplaceOnChanges": true
},
"params": {
"$ref": "#/types/gcp:compute/InstanceParams:InstanceParams",
"description": "Additional instance parameters.\n.\n",
"willReplaceOnChanges": true
},
"partnerMetadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Beta key/value pair represents partner metadata assigned to instance where key represent a defined namespace and value is a json string represent the entries associted with the namespace.\n"
},
"project": {
"type": "string",
"description": "The ID of the project in which the resource belongs. If it\nis not provided, the provider project is used.\n",
"willReplaceOnChanges": true
},
"pulumiLabels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "The combination of labels configured directly on the resource and default labels configured on the provider.\n",
"secret": true
},
"reservationAffinity": {
"$ref": "#/types/gcp:compute/InstanceReservationAffinity:InstanceReservationAffinity",
"description": "Specifies the reservations that this instance can consume from.\nStructure is documented below.\n",
"willReplaceOnChanges": true
},
"resourcePolicies": {
"type": "string",
"description": "- A list of self_links of resource policies to attach to the instance. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.\n"
},
"scheduling": {
"$ref": "#/types/gcp:compute/InstanceScheduling:InstanceScheduling",
"description": "The scheduling strategy to use. More details about\nthis configuration option are detailed below.\n"
},
"scratchDisks": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceScratchDisk:InstanceScratchDisk"
},
"description": "Scratch disks to attach to the instance. This can be\nspecified multiple times for multiple scratch disks. Structure is documented below.\n",
"willReplaceOnChanges": true
},
"selfLink": {
"type": "string",
"description": "The URI of the created resource.\n"
},
"serviceAccount": {
"$ref": "#/types/gcp:compute/InstanceServiceAccount:InstanceServiceAccount",
"description": "Service account to attach to the instance.\nStructure is documented below.\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"shieldedInstanceConfig": {
"$ref": "#/types/gcp:compute/InstanceShieldedInstanceConfig:InstanceShieldedInstanceConfig",
"description": "Enable [Shielded VM](https://cloud.google.com/security/shielded-cloud/shielded-vm) on this instance. Shielded VM provides verifiable integrity to prevent against malware and rootkits. Defaults to disabled. Structure is documented below.\n**Note**: `shielded_instance_config` can only be used with boot images with shielded vm support. See the complete list [here](https://cloud.google.com/compute/docs/images#shielded-images).\n**Note**: `allow_stopping_for_update` must be set to true or your instance must have a `desired_status` of `TERMINATED` in order to update this field.\n"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of network tags to attach to the instance.\n"
},
"tagsFingerprint": {
"type": "string",
"description": "The unique fingerprint of the tags.\n"
},
"zone": {
"type": "string",
"description": "The zone that the machine should be created in. If it is not provided, the provider zone is used.\n",
"willReplaceOnChanges": true
}
},
"type": "object"
}
}
},
"functions": {
"gcp:compute/getImage:getImage": {
"description": "Get information about a Google Compute Image. Check that your service account has the `compute.imageUser` role if you want to share [custom images](https://cloud.google.com/compute/docs/images/sharing-images-across-projects) from another project. If you want to use [public images][pubimg], do not forget to specify the dedicated project. For more information see\n[the official documentation](https://cloud.google.com/compute/docs/images) and its [API](https://cloud.google.com/compute/docs/reference/latest/images).\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst myImage = gcp.compute.getImage({\n family: \"debian-11\",\n project: \"debian-cloud\",\n});\nconst _default = new gcp.compute.Instance(\"default\", {bootDisk: {\n initializeParams: {\n image: myImage.then(myImage => myImage.selfLink),\n },\n}});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmy_image = gcp.compute.get_image(family=\"debian-11\",\n project=\"debian-cloud\")\ndefault = gcp.compute.Instance(\"default\", boot_disk={\n \"initialize_params\": {\n \"image\": my_image.self_link,\n },\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() => \n{\n var myImage = Gcp.Compute.GetImage.Invoke(new()\n {\n Family = \"debian-11\",\n Project = \"debian-cloud\",\n });\n\n var @default = new Gcp.Compute.Instance(\"default\", new()\n {\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = myImage.Apply(getImageResult => getImageResult.SelfLink),\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyImage, err := compute.LookupImage(ctx, &compute.LookupImageArgs{\n\t\t\tFamily: pulumi.StringRef(\"debian-11\"),\n\t\t\tProject: pulumi.StringRef(\"debian-cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstance(ctx, \"default\", &compute.InstanceArgs{\n\t\t\tBootDisk: &compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(myImage.SelfLink),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetImageArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myImage = ComputeFunctions.getImage(GetImageArgs.builder()\n .family(\"debian-11\")\n .project(\"debian-cloud\")\n .build());\n\n var default_ = new Instance(\"default\", InstanceArgs.builder()\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(myImage.applyValue(getImageResult -> getImageResult.selfLink()))\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:Instance\n properties:\n bootDisk:\n initializeParams:\n image: ${myImage.selfLink}\nvariables:\n myImage:\n fn::invoke:\n Function: gcp:compute:getImage\n Arguments:\n family: debian-11\n project: debian-cloud\n```\n<!--End PulumiCodeChooser -->\n",
"inputs": {
"description": "A collection of arguments for invoking getImage.\n",
"properties": {
"family": {
"type": "string",
"description": "The family name of the image.\n",
"willReplaceOnChanges": true
},
"filter": {
"type": "string",
"willReplaceOnChanges": true
},
"mostRecent": {
"type": "boolean",
"description": "A boolean to indicate either to take to most recent image if your filter\nreturns more than one image.\n"
},
"name": {
"type": "string",
"description": ", `family` or `filter` - (Required) The name of a specific image or a family.\nExactly one of `name`, `family` or `filter` must be specified. If `name` is specified, it will fetch\nthe corresponding image. If `family` is specified, it will return the latest image\nthat is part of an image family and is not deprecated. If you specify `filter`, your\nfilter must return exactly one image unless you use `most_recent`.\nFilter syntax can be found [here](https://cloud.google.com/compute/docs/reference/rest/v1/images/list) in the filter section.\n\n- - -\n",
"willReplaceOnChanges": true
},
"project": {
"type": "string",
"description": "The project in which the resource belongs. If it is not\nprovided, the provider project is used. If you are using a\n[public base image][pubimg], be sure to specify the correct Image Project.\n",
"willReplaceOnChanges": true
}
},
"type": "object"
},
"outputs": {
"description": "A collection of values returned by getImage.\n",
"properties": {
"archiveSizeBytes": {
"description": "The size of the image tar.gz archive stored in Google Cloud Storage in bytes.\n",
"type": "integer"
},
"creationTimestamp": {
"description": "The creation timestamp in RFC3339 text format.\n",
"type": "string"
},
"description": {
"description": "An optional description of this image.\n",
"type": "string"
},
"diskSizeGb": {
"description": "The size of the image when restored onto a persistent disk in gigabytes.\n",
"type": "integer"
},
"family": {
"description": "The family name of the image.\n",
"type": "string"
},
"filter": {
"type": "string"
},
"id": {
"description": "The provider-assigned unique ID for this managed resource.\n",
"type": "string"
},
"imageEncryptionKeySha256": {
"description": "The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nencoded SHA-256 hash of the [customer-supplied encryption key](https://cloud.google.com/compute/docs/disks/customer-supplied-encryption)\nthat protects this image.\n",
"type": "string"
},
"imageId": {
"description": "The unique identifier for the image.\n",
"type": "string"
},
"labelFingerprint": {
"description": "A fingerprint for the labels being applied to this image.\n",
"type": "string"
},
"labels": {
"additionalProperties": {
"type": "string"
},
"description": "All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.\n",
"type": "object"
},
"licenses": {
"description": "A list of applicable license URI.\n",
"items": {
"type": "string"
},
"type": "array"
},
"mostRecent": {
"type": "boolean"
},
"name": {
"description": "The name of the image.\n",
"type": "string"
},
"project": {
"type": "string"
},
"selfLink": {
"description": "The URI of the image.\n",
"type": "string"
},
"sourceDisk": {
"description": "The URL of the source disk used to create this image.\n",
"type": "string"
},
"sourceDiskEncryptionKeySha256": {
"description": "The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nencoded SHA-256 hash of the [customer-supplied encryption key](https://cloud.google.com/compute/docs/disks/customer-supplied-encryption)\nthat protects this image.\n",
"type": "string"
},
"sourceDiskId": {
"description": "The ID value of the disk used to create this image.\n",
"type": "string"
},
"sourceImageId": {
"description": "The ID value of the image used to create this image.\n",
"type": "string"
},
"status": {
"description": "The status of the image. Possible values are **FAILED**, **PENDING**, or **READY**.\n",
"type": "string"
}
},
"required": [
"archiveSizeBytes",
"creationTimestamp",
"description",
"diskSizeGb",
"family",
"imageEncryptionKeySha256",
"imageId",
"labelFingerprint",
"labels",
"licenses",
"name",
"project",
"selfLink",
"sourceDisk",
"sourceDiskEncryptionKeySha256",
"sourceDiskId",
"sourceImageId",
"status",
"id"
],
"type": "object"
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment