Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jplewa/0988583befa715aedcde660feae81002 to your computer and use it in GitHub Desktop.
Save jplewa/0988583befa715aedcde660feae81002 to your computer and use it in GitHub Desktop.
{
"name": "gcp",
"meta": {
"moduleFormat": "(.*)(?:/[^/]*)"
},
"config": {
"variables": {
"accessApprovalCustomEndpoint": {
"type": "string"
},
"accessContextManagerCustomEndpoint": {
"type": "string"
},
"accessToken": {
"type": "string"
},
"activeDirectoryCustomEndpoint": {
"type": "string"
},
"alloydbCustomEndpoint": {
"type": "string"
},
"apiGatewayCustomEndpoint": {
"type": "string"
},
"apigeeCustomEndpoint": {
"type": "string"
},
"apikeysCustomEndpoint": {
"type": "string"
},
"appEngineCustomEndpoint": {
"type": "string"
},
"artifactRegistryCustomEndpoint": {
"type": "string"
},
"assuredWorkloadsCustomEndpoint": {
"type": "string"
},
"batching": {
"$ref": "#/types/gcp:config/batching:batching"
},
"beyondcorpCustomEndpoint": {
"type": "string"
},
"bigQueryCustomEndpoint": {
"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"
},
"certificateManagerCustomEndpoint": {
"type": "string"
},
"cloudAssetCustomEndpoint": {
"type": "string"
},
"cloudBillingCustomEndpoint": {
"type": "string"
},
"cloudBuildCustomEndpoint": {
"type": "string"
},
"cloudBuildWorkerPoolCustomEndpoint": {
"type": "string"
},
"cloudFunctionsCustomEndpoint": {
"type": "string"
},
"cloudIdentityCustomEndpoint": {
"type": "string"
},
"cloudIdsCustomEndpoint": {
"type": "string"
},
"cloudIotCustomEndpoint": {
"type": "string"
},
"cloudResourceManagerCustomEndpoint": {
"type": "string"
},
"cloudRunCustomEndpoint": {
"type": "string"
},
"cloudRunV2CustomEndpoint": {
"type": "string"
},
"cloudSchedulerCustomEndpoint": {
"type": "string"
},
"cloudTasksCustomEndpoint": {
"type": "string"
},
"cloudbuildv2CustomEndpoint": {
"type": "string"
},
"clouddeployCustomEndpoint": {
"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"
},
"credentials": {
"type": "string"
},
"dataCatalogCustomEndpoint": {
"type": "string"
},
"dataFusionCustomEndpoint": {
"type": "string"
},
"dataLossPreventionCustomEndpoint": {
"type": "string"
},
"databaseMigrationServiceCustomEndpoint": {
"type": "string"
},
"dataflowCustomEndpoint": {
"type": "string"
},
"dataformCustomEndpoint": {
"type": "string"
},
"dataplexCustomEndpoint": {
"type": "string"
},
"dataprocCustomEndpoint": {
"type": "string"
},
"dataprocMetastoreCustomEndpoint": {
"type": "string"
},
"datastoreCustomEndpoint": {
"type": "string"
},
"datastreamCustomEndpoint": {
"type": "string"
},
"deploymentManagerCustomEndpoint": {
"type": "string"
},
"dialogflowCustomEndpoint": {
"type": "string"
},
"dialogflowCxCustomEndpoint": {
"type": "string"
},
"disableGooglePartnerName": {
"type": "boolean"
},
"dnsCustomEndpoint": {
"type": "string"
},
"documentAiCustomEndpoint": {
"type": "string"
},
"essentialContactsCustomEndpoint": {
"type": "string"
},
"eventarcCustomEndpoint": {
"type": "string"
},
"filestoreCustomEndpoint": {
"type": "string"
},
"firebaseCustomEndpoint": {
"type": "string"
},
"firebaseDatabaseCustomEndpoint": {
"type": "string"
},
"firebaseHostingCustomEndpoint": {
"type": "string"
},
"firebaseStorageCustomEndpoint": {
"type": "string"
},
"firebaserulesCustomEndpoint": {
"type": "string"
},
"firestoreCustomEndpoint": {
"type": "string"
},
"gameServicesCustomEndpoint": {
"type": "string"
},
"gkeBackupCustomEndpoint": {
"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"
}
},
"kmsCustomEndpoint": {
"type": "string"
},
"loggingCustomEndpoint": {
"type": "string"
},
"memcacheCustomEndpoint": {
"type": "string"
},
"mlEngineCustomEndpoint": {
"type": "string"
},
"monitoringCustomEndpoint": {
"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"
},
"privatecaCustomEndpoint": {
"type": "string"
},
"project": {
"type": "string",
"defaultInfo": {
"environment": [
"GOOGLE_PROJECT",
"GOOGLE_CLOUD_PROJECT",
"GCLOUD_PROJECT",
"CLOUDSDK_CORE_PROJECT"
]
}
},
"pubsubCustomEndpoint": {
"type": "string"
},
"pubsubLiteCustomEndpoint": {
"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"
},
"securityCenterCustomEndpoint": {
"type": "string"
},
"securityScannerCustomEndpoint": {
"type": "string"
},
"serviceDirectoryCustomEndpoint": {
"type": "string"
},
"serviceManagementCustomEndpoint": {
"type": "string"
},
"serviceNetworkingCustomEndpoint": {
"type": "string"
},
"serviceUsageCustomEndpoint": {
"type": "string"
},
"sourceRepoCustomEndpoint": {
"type": "string"
},
"spannerCustomEndpoint": {
"type": "string"
},
"sqlCustomEndpoint": {
"type": "string"
},
"storageCustomEndpoint": {
"type": "string"
},
"storageTransferCustomEndpoint": {
"type": "string"
},
"tagsCustomEndpoint": {
"type": "string"
},
"tagsLocationCustomEndpoint": {
"type": "string"
},
"tpuCustomEndpoint": {
"type": "string"
},
"userProjectOverride": {
"type": "boolean"
},
"vertexAiCustomEndpoint": {
"type": "string"
},
"vmwareengineCustomEndpoint": {
"type": "string"
},
"vpcAccessCustomEndpoint": {
"type": "string"
},
"workflowsCustomEndpoint": {
"type": "string"
},
"workstationsCustomEndpoint": {
"type": "string"
},
"zone": {
"type": "string",
"defaultInfo": {
"environment": [
"GOOGLE_ZONE",
"GCLOUD_ZONE",
"CLOUDSDK_COMPUTE_ZONE"
]
}
}
}
},
"language": {
"csharp": {
"compatibility": "tfbridge20",
"namespaces": {
"accessapproval": "AccessApproval",
"accesscontextmanager": "AccessContextManager",
"activedirectory": "ActiveDirectory",
"alloydb": "Alloydb",
"apigateway": "ApiGateway",
"apigee": "Apigee",
"appengine": "AppEngine",
"artifactregistry": "ArtifactRegistry",
"assuredworkloads": "AssuredWorkloads",
"beyondcorp": "Beyondcorp",
"bigquery": "BigQuery",
"bigqueryanalyticshub": "BigQueryAnalyticsHub",
"bigquerydatapolicy": "BigQueryDataPolicy",
"bigtable": "BigTable",
"billing": "Billing",
"binaryauthorization": "BinaryAuthorization",
"certificateauthority": "CertificateAuthority",
"certificatemanager": "CertificateManager",
"cloudasset": "CloudAsset",
"cloudbuild": "CloudBuild",
"cloudbuildv2": "CloudBuildV2",
"clouddeploy": "CloudDeploy",
"cloudfunctions": "CloudFunctions",
"cloudfunctionsv2": "CloudFunctionsV2",
"cloudidentity": "CloudIdentity",
"cloudids": "CloudIds",
"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",
"datastore": "Datastore",
"datastream": "Datastream",
"deploymentmanager": "DeploymentManager",
"diagflow": "Diagflow",
"dns": "Dns",
"endpoints": "Endpoints",
"essentialcontacts": "EssentialContacts",
"eventarc": "Eventarc",
"filestore": "Filestore",
"firebase": "Firebase",
"firebaserules": "Firebaserules",
"firestore": "Firestore",
"folder": "Folder",
"gameservices": "GameServices",
"gcp": "Gcp",
"gkebackup": "GkeBackup",
"gkehub": "GkeHub",
"gkeonprem": "GkeOnPrem",
"healthcare": "Healthcare",
"iam": "Iam",
"iap": "Iap",
"identityplatform": "IdentityPlatform",
"iot": "Iot",
"kms": "Kms",
"logging": "Logging",
"memcache": "Memcache",
"ml": "ML",
"monitoring": "Monitoring",
"networkconnectivity": "NetworkConnectivity",
"networkmanagement": "NetworkManagement",
"networksecurity": "NetworkSecurity",
"networkservices": "NetworkServices",
"notebooks": "Notebooks",
"organizations": "Organizations",
"orgpolicy": "OrgPolicy",
"osconfig": "OsConfig",
"oslogin": "OsLogin",
"projects": "Projects",
"pubsub": "PubSub",
"recaptcha": "Recaptcha",
"redis": "Redis",
"resourcemanager": "ResourceManager",
"runtimeconfig": "RuntimeConfig",
"secretmanager": "SecretManager",
"securitycenter": "SecurityCenter",
"serviceAccount": "ServiceAccount",
"servicedirectory": "ServiceDirectory",
"servicenetworking": "ServiceNetworking",
"serviceusage": "ServiceUsage",
"sourcerepo": "SourceRepo",
"spanner": "Spanner",
"sql": "Sql",
"storage": "Storage",
"tags": "Tags",
"tpu": "Tpu",
"vertex": "Vertex",
"vmwareengine": "VMwareEngine",
"vpcaccess": "VpcAccess",
"workflows": "Workflows",
"workstations": "Workstations"
},
"packageReferences": {
"Pulumi": "3.*"
}
},
"go": {
"generateExtraInputTypes": true,
"generateResourceContainerTypes": true,
"importBasePath": "github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp"
},
"nodejs": {
"compatibility": "tfbridge20",
"dependencies": {
"@pulumi/pulumi": "^3.0.0",
"@types/express": "^4.16.0",
"read-package-json": "^2.0.13"
},
"devDependencies": {
"@types/node": "^10.0.0"
},
"disableUnionOutputTypes": true,
"packageDescription": "A Pulumi package for creating and managing Google Cloud Platform resources.",
"packageName": "",
"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).",
"typescriptVersion": ""
},
"python": {
"compatibility": "tfbridge20",
"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).",
"requires": {
"pulumi": ">=3.0.0,<4.0.0"
}
}
},
"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"
},
"activeDirectoryCustomEndpoint": {
"type": "string"
},
"alloydbCustomEndpoint": {
"type": "string"
},
"apiGatewayCustomEndpoint": {
"type": "string"
},
"apigeeCustomEndpoint": {
"type": "string"
},
"apikeysCustomEndpoint": {
"type": "string"
},
"appEngineCustomEndpoint": {
"type": "string"
},
"artifactRegistryCustomEndpoint": {
"type": "string"
},
"assuredWorkloadsCustomEndpoint": {
"type": "string"
},
"batching": {
"$ref": "#/types/gcp:index/ProviderBatching:ProviderBatching"
},
"beyondcorpCustomEndpoint": {
"type": "string"
},
"bigQueryCustomEndpoint": {
"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"
},
"certificateManagerCustomEndpoint": {
"type": "string"
},
"cloudAssetCustomEndpoint": {
"type": "string"
},
"cloudBillingCustomEndpoint": {
"type": "string"
},
"cloudBuildCustomEndpoint": {
"type": "string"
},
"cloudBuildWorkerPoolCustomEndpoint": {
"type": "string"
},
"cloudFunctionsCustomEndpoint": {
"type": "string"
},
"cloudIdentityCustomEndpoint": {
"type": "string"
},
"cloudIdsCustomEndpoint": {
"type": "string"
},
"cloudIotCustomEndpoint": {
"type": "string"
},
"cloudResourceManagerCustomEndpoint": {
"type": "string"
},
"cloudRunCustomEndpoint": {
"type": "string"
},
"cloudRunV2CustomEndpoint": {
"type": "string"
},
"cloudSchedulerCustomEndpoint": {
"type": "string"
},
"cloudTasksCustomEndpoint": {
"type": "string"
},
"cloudbuildv2CustomEndpoint": {
"type": "string"
},
"clouddeployCustomEndpoint": {
"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"
},
"credentials": {
"type": "string"
},
"dataCatalogCustomEndpoint": {
"type": "string"
},
"dataFusionCustomEndpoint": {
"type": "string"
},
"dataLossPreventionCustomEndpoint": {
"type": "string"
},
"databaseMigrationServiceCustomEndpoint": {
"type": "string"
},
"dataflowCustomEndpoint": {
"type": "string"
},
"dataformCustomEndpoint": {
"type": "string"
},
"dataplexCustomEndpoint": {
"type": "string"
},
"dataprocCustomEndpoint": {
"type": "string"
},
"dataprocMetastoreCustomEndpoint": {
"type": "string"
},
"datastoreCustomEndpoint": {
"type": "string"
},
"datastreamCustomEndpoint": {
"type": "string"
},
"deploymentManagerCustomEndpoint": {
"type": "string"
},
"dialogflowCustomEndpoint": {
"type": "string"
},
"dialogflowCxCustomEndpoint": {
"type": "string"
},
"disableGooglePartnerName": {
"type": "boolean"
},
"dnsCustomEndpoint": {
"type": "string"
},
"documentAiCustomEndpoint": {
"type": "string"
},
"essentialContactsCustomEndpoint": {
"type": "string"
},
"eventarcCustomEndpoint": {
"type": "string"
},
"filestoreCustomEndpoint": {
"type": "string"
},
"firebaseCustomEndpoint": {
"type": "string"
},
"firebaseDatabaseCustomEndpoint": {
"type": "string"
},
"firebaseHostingCustomEndpoint": {
"type": "string"
},
"firebaseStorageCustomEndpoint": {
"type": "string"
},
"firebaserulesCustomEndpoint": {
"type": "string"
},
"firestoreCustomEndpoint": {
"type": "string"
},
"gameServicesCustomEndpoint": {
"type": "string"
},
"gkeBackupCustomEndpoint": {
"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"
}
},
"kmsCustomEndpoint": {
"type": "string"
},
"loggingCustomEndpoint": {
"type": "string"
},
"memcacheCustomEndpoint": {
"type": "string"
},
"mlEngineCustomEndpoint": {
"type": "string"
},
"monitoringCustomEndpoint": {
"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"
},
"privatecaCustomEndpoint": {
"type": "string"
},
"project": {
"type": "string"
},
"pubsubCustomEndpoint": {
"type": "string"
},
"pubsubLiteCustomEndpoint": {
"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"
},
"securityCenterCustomEndpoint": {
"type": "string"
},
"securityScannerCustomEndpoint": {
"type": "string"
},
"serviceDirectoryCustomEndpoint": {
"type": "string"
},
"serviceManagementCustomEndpoint": {
"type": "string"
},
"serviceNetworkingCustomEndpoint": {
"type": "string"
},
"serviceUsageCustomEndpoint": {
"type": "string"
},
"sourceRepoCustomEndpoint": {
"type": "string"
},
"spannerCustomEndpoint": {
"type": "string"
},
"sqlCustomEndpoint": {
"type": "string"
},
"storageCustomEndpoint": {
"type": "string"
},
"storageTransferCustomEndpoint": {
"type": "string"
},
"tagsCustomEndpoint": {
"type": "string"
},
"tagsLocationCustomEndpoint": {
"type": "string"
},
"tpuCustomEndpoint": {
"type": "string"
},
"userProjectOverride": {
"type": "boolean"
},
"vertexAiCustomEndpoint": {
"type": "string"
},
"vmwareengineCustomEndpoint": {
"type": "string"
},
"vpcAccessCustomEndpoint": {
"type": "string"
},
"workflowsCustomEndpoint": {
"type": "string"
},
"workstationsCustomEndpoint": {
"type": "string"
},
"zone": {
"type": "string"
}
},
"inputProperties": {
"accessApprovalCustomEndpoint": {
"type": "string"
},
"accessContextManagerCustomEndpoint": {
"type": "string"
},
"accessToken": {
"type": "string"
},
"activeDirectoryCustomEndpoint": {
"type": "string"
},
"alloydbCustomEndpoint": {
"type": "string"
},
"apiGatewayCustomEndpoint": {
"type": "string"
},
"apigeeCustomEndpoint": {
"type": "string"
},
"apikeysCustomEndpoint": {
"type": "string"
},
"appEngineCustomEndpoint": {
"type": "string"
},
"artifactRegistryCustomEndpoint": {
"type": "string"
},
"assuredWorkloadsCustomEndpoint": {
"type": "string"
},
"batching": {
"$ref": "#/types/gcp:index/ProviderBatching:ProviderBatching"
},
"beyondcorpCustomEndpoint": {
"type": "string"
},
"bigQueryCustomEndpoint": {
"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"
},
"certificateManagerCustomEndpoint": {
"type": "string"
},
"cloudAssetCustomEndpoint": {
"type": "string"
},
"cloudBillingCustomEndpoint": {
"type": "string"
},
"cloudBuildCustomEndpoint": {
"type": "string"
},
"cloudBuildWorkerPoolCustomEndpoint": {
"type": "string"
},
"cloudFunctionsCustomEndpoint": {
"type": "string"
},
"cloudIdentityCustomEndpoint": {
"type": "string"
},
"cloudIdsCustomEndpoint": {
"type": "string"
},
"cloudIotCustomEndpoint": {
"type": "string"
},
"cloudResourceManagerCustomEndpoint": {
"type": "string"
},
"cloudRunCustomEndpoint": {
"type": "string"
},
"cloudRunV2CustomEndpoint": {
"type": "string"
},
"cloudSchedulerCustomEndpoint": {
"type": "string"
},
"cloudTasksCustomEndpoint": {
"type": "string"
},
"cloudbuildv2CustomEndpoint": {
"type": "string"
},
"clouddeployCustomEndpoint": {
"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"
},
"credentials": {
"type": "string"
},
"dataCatalogCustomEndpoint": {
"type": "string"
},
"dataFusionCustomEndpoint": {
"type": "string"
},
"dataLossPreventionCustomEndpoint": {
"type": "string"
},
"databaseMigrationServiceCustomEndpoint": {
"type": "string"
},
"dataflowCustomEndpoint": {
"type": "string"
},
"dataformCustomEndpoint": {
"type": "string"
},
"dataplexCustomEndpoint": {
"type": "string"
},
"dataprocCustomEndpoint": {
"type": "string"
},
"dataprocMetastoreCustomEndpoint": {
"type": "string"
},
"datastoreCustomEndpoint": {
"type": "string"
},
"datastreamCustomEndpoint": {
"type": "string"
},
"deploymentManagerCustomEndpoint": {
"type": "string"
},
"dialogflowCustomEndpoint": {
"type": "string"
},
"dialogflowCxCustomEndpoint": {
"type": "string"
},
"disableGooglePartnerName": {
"type": "boolean"
},
"dnsCustomEndpoint": {
"type": "string"
},
"documentAiCustomEndpoint": {
"type": "string"
},
"essentialContactsCustomEndpoint": {
"type": "string"
},
"eventarcCustomEndpoint": {
"type": "string"
},
"filestoreCustomEndpoint": {
"type": "string"
},
"firebaseCustomEndpoint": {
"type": "string"
},
"firebaseDatabaseCustomEndpoint": {
"type": "string"
},
"firebaseHostingCustomEndpoint": {
"type": "string"
},
"firebaseStorageCustomEndpoint": {
"type": "string"
},
"firebaserulesCustomEndpoint": {
"type": "string"
},
"firestoreCustomEndpoint": {
"type": "string"
},
"gameServicesCustomEndpoint": {
"type": "string"
},
"gkeBackupCustomEndpoint": {
"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"
}
},
"kmsCustomEndpoint": {
"type": "string"
},
"loggingCustomEndpoint": {
"type": "string"
},
"memcacheCustomEndpoint": {
"type": "string"
},
"mlEngineCustomEndpoint": {
"type": "string"
},
"monitoringCustomEndpoint": {
"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"
},
"privatecaCustomEndpoint": {
"type": "string"
},
"project": {
"type": "string",
"defaultInfo": {
"environment": [
"GOOGLE_PROJECT",
"GOOGLE_CLOUD_PROJECT",
"GCLOUD_PROJECT",
"CLOUDSDK_CORE_PROJECT"
]
}
},
"pubsubCustomEndpoint": {
"type": "string"
},
"pubsubLiteCustomEndpoint": {
"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"
},
"securityCenterCustomEndpoint": {
"type": "string"
},
"securityScannerCustomEndpoint": {
"type": "string"
},
"serviceDirectoryCustomEndpoint": {
"type": "string"
},
"serviceManagementCustomEndpoint": {
"type": "string"
},
"serviceNetworkingCustomEndpoint": {
"type": "string"
},
"serviceUsageCustomEndpoint": {
"type": "string"
},
"sourceRepoCustomEndpoint": {
"type": "string"
},
"spannerCustomEndpoint": {
"type": "string"
},
"sqlCustomEndpoint": {
"type": "string"
},
"storageCustomEndpoint": {
"type": "string"
},
"storageTransferCustomEndpoint": {
"type": "string"
},
"tagsCustomEndpoint": {
"type": "string"
},
"tagsLocationCustomEndpoint": {
"type": "string"
},
"tpuCustomEndpoint": {
"type": "string"
},
"userProjectOverride": {
"type": "boolean"
},
"vertexAiCustomEndpoint": {
"type": "string"
},
"vmwareengineCustomEndpoint": {
"type": "string"
},
"vpcAccessCustomEndpoint": {
"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"
},
"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"
},
"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": {
"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": {
"$ref": "pulumi.json#/Any"
},
"description": "A set of key/value label pairs assigned to the disk. This \nfield is only applicable for persistent disks.\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
},
"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",
"size",
"type"
]
}
}
},
"gcp:compute/InstanceConfidentialInstanceConfig:InstanceConfidentialInstanceConfig": {
"properties": {
"enableConfidentialCompute": {
"type": "boolean",
"description": "Defines whether the instance should have confidential compute enabled. `on_host_maintenance` has to be set to TERMINATE or this will fail to create the VM.\n"
}
},
"type": "object",
"required": [
"enableConfidentialCompute"
]
},
"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 GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"count",
"type"
]
},
"gcp:compute/InstanceNetworkInterface:InstanceNetworkInterface": {
"properties": {
"accessConfigs": {
"type": "array",
"items": {
"$ref": "#/types/gcp:compute/InstanceNetworkInterfaceAccessConfig:InstanceNetworkInterfaceAccessConfig"
}
},
"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"
},
"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"
},
"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"
},
"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
},
"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": [
"ipv6AccessType",
"name",
"network",
"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"
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
"natIp",
"networkTier"
]
}
}
},
"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"
},
"externalIpv6PrefixLength": {
"type": "string"
},
"networkTier": {
"type": "string",
"description": "The [networking tier][network-tier] used for configuring this instance.\nThis field can take the following values: PREMIUM, FIXED_STANDARD or STANDARD. If this field is\nnot specified, it is assumed to be PREMIUM.\n\n<a name=\"nested_ipv6_access_config\"></a>The `ipv6_access_config` block supports:\n\nsubnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.\n"
},
"publicPtrDomainName": {
"type": "string",
"description": "The DNS domain name for the public PTR record.\nTo set this field on an instance, you must be verified as the owner of the domain.\nSee [the docs](https://cloud.google.com/compute/docs/instances/create-ptr-record) for how\nto become verified as a domain owner.\n\nrecords for the external IPv6 ranges..\n"
}
},
"type": "object",
"required": [
"networkTier"
],
"language": {
"nodejs": {
"requiredOutputs": [
"externalIpv6",
"externalIpv6PrefixLength",
"networkTier"
]
}
}
},
"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/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"
},
"maintenanceInterval": {
"type": "string"
},
"maxRunDuration": {
"$ref": "#/types/gcp:compute/InstanceSchedulingMaxRunDuration:InstanceSchedulingMaxRunDuration",
"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"
},
"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 `auto_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/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/InstanceScratchDisk:InstanceScratchDisk": {
"properties": {
"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 image in gigabytes. If not specified, it\nwill inherit the size of its base image.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"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{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultAccount = new gcp.serviceaccount.Account(\"defaultAccount\", {\n accountId: \"service_account_id\",\n displayName: \"Service Account\",\n});\nconst defaultInstance = new gcp.compute.Instance(\"defaultInstance\", {\n machineType: \"e2-medium\",\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\": \"SCSI\",\n }],\n networkInterfaces: [{\n network: \"default\",\n accessConfigs: [{}],\n }],\n metadata: {\n foo: \"bar\",\n },\n metadataStartupScript: \"echo hi > /test.txt\",\n serviceAccount: {\n email: defaultAccount.email,\n scopes: [\"cloud-platform\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_account = gcp.service_account.Account(\"defaultAccount\",\n account_id=\"service_account_id\",\n display_name=\"Service Account\")\ndefault_instance = gcp.compute.Instance(\"defaultInstance\",\n machine_type=\"e2-medium\",\n zone=\"us-central1-a\",\n tags=[\n \"foo\",\n \"bar\",\n ],\n boot_disk=gcp.compute.InstanceBootDiskArgs(\n initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(\n image=\"debian-cloud/debian-11\",\n labels={\n \"my_label\": \"value\",\n },\n ),\n ),\n scratch_disks=[gcp.compute.InstanceScratchDiskArgs(\n interface=\"SCSI\",\n )],\n network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(\n network=\"default\",\n access_configs=[gcp.compute.InstanceNetworkInterfaceAccessConfigArgs()],\n )],\n metadata={\n \"foo\": \"bar\",\n },\n metadata_startup_script=\"echo hi > /test.txt\",\n service_account=gcp.compute.InstanceServiceAccountArgs(\n email=default_account.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 defaultAccount = new Gcp.ServiceAccount.Account(\"defaultAccount\", new()\n {\n AccountId = \"service_account_id\",\n DisplayName = \"Service Account\",\n });\n\n var defaultInstance = new Gcp.Compute.Instance(\"defaultInstance\", new()\n {\n MachineType = \"e2-medium\",\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 = \"SCSI\",\n },\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Network = \"default\",\n AccessConfigs = new[]\n {\n null,\n },\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 = defaultAccount.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/v6/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v6/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\tdefaultAccount, err := serviceAccount.NewAccount(ctx, \"defaultAccount\", &serviceAccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"service_account_id\"),\n\t\t\tDisplayName: pulumi.String(\"Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewInstance(ctx, \"defaultInstance\", &compute.InstanceArgs{\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\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.AnyMap{\n\t\t\t\t\t\t\"my_label\": pulumi.Any(\"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(\"SCSI\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t&compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: pulumi.String(\"default\"),\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},\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: defaultAccount.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.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceScratchDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\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 defaultAccount = new Account(\"defaultAccount\", AccountArgs.builder() \n .accountId(\"service_account_id\")\n .displayName(\"Service Account\")\n .build());\n\n var defaultInstance = new Instance(\"defaultInstance\", InstanceArgs.builder() \n .machineType(\"e2-medium\")\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_(\"SCSI\")\n .build())\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .network(\"default\")\n .accessConfigs()\n .build())\n .metadata(Map.of(\"foo\", \"bar\"))\n .metadataStartupScript(\"echo hi > /test.txt\")\n .serviceAccount(InstanceServiceAccountArgs.builder()\n .email(defaultAccount.email())\n .scopes(\"cloud-platform\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultAccount:\n type: gcp:serviceAccount:Account\n properties:\n accountId: service_account_id\n displayName: Service Account\n defaultInstance:\n type: gcp:compute:Instance\n properties:\n machineType: e2-medium\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 # Local SSD disk\n scratchDisks:\n - interface: SCSI\n networkInterfaces:\n - network: default\n accessConfigs:\n - {}\n metadata:\n foo: bar\n metadataStartupScript: echo hi > /test.txt\n serviceAccount:\n email: ${defaultAccount.email}\n scopes:\n - cloud-platform\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using any of these accepted formats\n\n```sh\n $ pulumi import gcp:compute/instance:Instance default projects/{{project}}/zones/{{zone}}/instances/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/instance:Instance default {{project}}/{{zone}}/{{name}}\n```\n\n\n\n```sh\n $ pulumi import gcp:compute/instance:Instance default {{name}}\n```\n\n [custom-vm-types]https://cloud.google.com/dataproc/docs/concepts/compute/custom-machine-types [network-tier]https://cloud.google.com/network-tiers/docs/overview [extended-custom-vm-type]https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#extendedmemory ",
"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"
},
"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"
},
"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][custom-vm-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][extended-custom-vm-type]. 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. A\nlist of default metadata values (e.g. ssh-keys) can be found [here](https://cloud.google.com/compute/docs/metadata/default-metadata-values)\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": "Configures 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"
},
"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"
},
"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",
"guestAccelerators",
"instanceId",
"labelFingerprint",
"machineType",
"metadataFingerprint",
"minCpuPlatform",
"name",
"networkInterfaces",
"project",
"reservationAffinity",
"scheduling",
"selfLink",
"shieldedInstanceConfig",
"tagsFingerprint",
"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",
"willReplaceOnChanges": true
},
"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"
},
"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][custom-vm-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][extended-custom-vm-type]. 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. A\nlist of default metadata values (e.g. ssh-keys) can be found [here](https://cloud.google.com/compute/docs/metadata/default-metadata-values)\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": "Configures 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
},
"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",
"willReplaceOnChanges": true
},
"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
},
"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"
},
"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][custom-vm-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][extended-custom-vm-type]. 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. A\nlist of default metadata values (e.g. ssh-keys) can be found [here](https://cloud.google.com/compute/docs/metadata/default-metadata-values)\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": "Configures 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
},
"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
},
"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{{% examples %}}\n## Example Usage\n{{% example %}}\n\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});\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\")\n# ...\ndefault = gcp.compute.Instance(\"default\", boot_disk=gcp.compute.InstanceBootDiskArgs(\n initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(\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 // ...\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/v6/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{{% /example %}}\n{{% /examples %}}",
"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
},
"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. Filter 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": {
"type": "integer",
"description": "The size of the image tar.gz archive stored in Google Cloud Storage in bytes.\n"
},
"creationTimestamp": {
"type": "string",
"description": "The creation timestamp in RFC3339 text format.\n"
},
"description": {
"type": "string",
"description": "An optional description of this image.\n"
},
"diskSizeGb": {
"type": "integer",
"description": "The size of the image when restored onto a persistent disk in gigabytes.\n"
},
"family": {
"type": "string",
"description": "The family name of the image.\n"
},
"filter": {
"type": "string"
},
"id": {
"type": "string",
"description": "The provider-assigned unique ID for this managed resource.\n"
},
"imageEncryptionKeySha256": {
"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](https://cloud.google.com/compute/docs/disks/customer-supplied-encryption)\nthat protects this image.\n"
},
"imageId": {
"type": "string",
"description": "The unique identifier for the image.\n"
},
"labelFingerprint": {
"type": "string",
"description": "A fingerprint for the labels being applied to this image.\n"
},
"labels": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A map of labels applied to this image.\n"
},
"licenses": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of applicable license URI.\n"
},
"name": {
"type": "string",
"description": "The name of the image.\n"
},
"project": {
"type": "string"
},
"selfLink": {
"type": "string",
"description": "The URI of the image.\n"
},
"sourceDisk": {
"type": "string",
"description": "The URL of the source disk used to create this image.\n"
},
"sourceDiskEncryptionKeySha256": {
"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](https://cloud.google.com/compute/docs/disks/customer-supplied-encryption)\nthat protects this image.\n"
},
"sourceDiskId": {
"type": "string",
"description": "The ID value of the disk used to create this image.\n"
},
"sourceImageId": {
"type": "string",
"description": "The ID value of the image used to create this image.\n"
},
"status": {
"type": "string",
"description": "The status of the image. Possible values are **FAILED**, **PENDING**, or **READY**.\n"
}
},
"type": "object",
"required": [
"archiveSizeBytes",
"creationTimestamp",
"description",
"diskSizeGb",
"family",
"imageEncryptionKeySha256",
"imageId",
"labelFingerprint",
"labels",
"licenses",
"name",
"project",
"selfLink",
"sourceDisk",
"sourceDiskEncryptionKeySha256",
"sourceDiskId",
"sourceImageId",
"status",
"id"
]
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment